I know the idea of smart buddy groups has been raised numerous times in the past. However, I would just like to suggest one possibly interesting way of implementing a flexible group system. The system I'm proposing would almost certainly not play nicely with official clients, but there may be a way to make it happen, I'm not sure. Anyway, here's my idea:
Along the lines of keywords that can be added to links in del.icio.us or photos on flickr, each buddy could have keywords associated with him/her. These keywords could be similar to existing group titles ("friends," "coworkers," etc.) or could be entirely different (attributes like frequency of chatting, based on logs, most recently seen information, etc.). Multiple keywords could be assigned to each contact, allowing for flexible group implementation. Groups could be created based on these keywords. Rather than displaying every contact on each account, the CL would only display those contacts that fit in a created group, though it would retain all buddies in some kind of Library, perhaps.
As Adam pointed out in his blog post on the centrality of the CL to IM programs, the CL itself is a rather problematic way of displaying information about contacts. This, I think, would solve that problem by allowing the greatest degree of user control over what information is displayed (in addition to Adium's existing competitive advantage in how that information is displayed). Unfortunately, I think it would be both 1) difficult to implement and make play nicely with official clients and 2) very controversial among the general Adium using public. However, this strategy, or systems like it, have proved very effective for the two websites I mentioned above as well as iTunes, iPhoto and, most recently, the Finder. Metadata is the wave of the future!
-Tommy