Websites are increasingly using tags as a means of navigation, and organisation of community generated content.
However, simply listing tags by popularity has its limitations. I'd like to suggest a few simple improvements.
1. Tag clusters by context
As an information architect, I'm not comfortable with the concept of a 'tag cloud'. I think it's a lazy excuse for navigation -- let the users build it themselves. As these tag clouds grow, I believe more and more people will find it useful to have another layer of organisation -- clustering the tags by category. del.icio.us has created 'tag bundles' to address this, but I suspect that for any site to do this in a meaningful way, it will take some good ol' index building, designed by a person with a flair for taxonomies.
2. Tag clusters by affinity
Sites should begin to group related tags and perhaps list them by popular 'clusters' rather than popular tags. I've previously noted how the tag page of del.icio.us is predominated by tech tags -- if this page were to group tags like AJAX, CSS and RSS into a cluster, it would open up space for other, less techie tag clusters to be visible on the homepage.
The classic example here is 'reading'. Does a 'reading' tag refer to items to be read, or to the location of Reading? It would be fairly simple for sites to determine the context either by other tags linked to an entry, or by content from the entry itself.
4. Error correction
I was surprised that sites like Technorati haven't done this yet, but searching for a misspelling, such as 'desing' doesn't yield the spell-corrected suggestion of 'design'. Websites could either offer a spell-checking feature, when posts are created, or determine that one 'desing' tag is meant to be 'design' based on the other tags pointing to the same post.
5. Semantic linking
Similar to tag clusters, websites should accommodate for people's slight variations in tagging. For example, labelling something 'weblog' shouldn't exclude a post from turning up in a search for 'blog' or 'blogger'.