In our case, we use both categories and tags in the university CMS (we use dotCMS). When a user creates content for the university in the content management system, we ask them to do both of these things. The first question that usually follows is: “What?” This is quickly followed by the second question: “Huh?” In all fairness, I can’t blame them on this. Both of these fields can be used on the front end of the web site (or not, depending on what it is), but we also use them in the CMS to enhance internal searching for content. Under this setup, categories form the basic structure of the college: office names, departments, organizations. Tags then allow specificity in identification. The result of this is searching for content categorized as the “Admission Office,” and then tagged with “checklist,” or “forms.” Or if you needed more generic information, you could search for content tagged as “contact information” and pull it from all the areas, or categories. This exposes the idea that the tags are simply identifying what is in the content. We use a similar mechanism for the calendar, categorizing by area, and tagging by topics. Then, any department or office can get a customized event feed of their category, or more general areas can pull from them all by tags. Seeing this type of stuff in action usually really helps people understand the difference when they didn’t before.
To make further comparisons, categories are kind of like folders. They are designed to help users located related content based on the implied relationship of the category name, usually based on a theme or topic. Generally, categories are predefined by some kind of administrator ahead of time, and aren’t added willy-nilly. For instance, there’s the “Admission Office” category in our CMS. It’s there in a list for the contributor to select from when they make content, and so they couldn’t make a new category called “Admissions Office” or “Undergrad Admission Office.” They are bound to what we have set up. This makes them useful for building things off of because they are predictable and structured.
Tags are almost never preset like that. Instead of folders, these would be like contextual post-it notes you stick on papers in the folder. You might agree on a policy to use some kind of convention (like always pluralize words, never capitalize, don’t include spaces, etc…), but generally there are no restrictions on their use, and authors can create and assign them during authorship of content without any extra help. In many ways, tags are a type of visible meta information, and you will hopefully break out a thesaurus if using them well. Not to confuse the matter, but it is possible to also create tags that can serve the purpose of categories, a kind of “super tag,” if you will (but it would rely on use of a convention to function properly). That kind of functionality will normally depend on your infrastructure, but the idea is that a tag, in a way, is basically a type or subset of categories. But they tend to be much more fluid and less predictable than categories. I could pull information based on the tag “student,” for example, but at the risk of missing stuff tagged “students,” or if you have the ability you could use the tag “student” to match things like “student employment,” “student events,” “student groups,” etc… In this way they are less useful functionally, but far more useful in identifying, connecting, and relating items. And looking at the big picture, properly implemented tags get picked up by sites like Technorati to help identify and group similar information from thousands of web sites on a macro level (for more information on this, take a look at the rel=”tag” microformat).
So there you go - categories organize, tags identify. Ultimately, their basic function and usage might change depending on what you’re using them in (a blog, Flickr, a CMS, etc…), but that basic principle will generally always stay the same no matter where you are. When users question their function, try to give them a simple example to go off of. If they don’t get it in our CMS at first, I tend to find refering to Flickr and YouTube to be nice examples that everyone seems to get. For more information on the discussion, I recommend the Categories vs. Tags articles at Haacked, or Usability Post.