Drupal's tagging vocabularies are really useful when webmasters and admins can not anticipate what categories or terms content authors and editors are going to need. The pitfall however, is that it is too easy for content editors to make a mess of the vocabulary by creating duplicate terms that are spelled wrong, similar to or synonymous of existing terms. And a "dirty" vocabulary such as this can be rather difficult to clean up and can be a real problem if content needs to be structured.
The alternative is to create a fixed vocabulary which can only have terms added through the taxonomy admin UI. This avoids building a messy vocabulary, but does away all of the advantages of a folksonomy, or tags vocabulary.
I recently learned a technique that offers most of the best parts of both worlds. Here's the recipe;
read more