Just a little note on avatars and Jabber. In x-virge's Jabber Vision, there's a piece on the need for Idavoll to be finished and deployed for finally implementing avatars in the Jabber universe, the right way. Though publish/subscribe is an essential element of the Avatar JEP, there's another dependency: discovery.
In particular, a client has to discover a contacts pubsub node by sending a Disco request to the contact's bare JID. The idea is that the contact's Jabber server responds to this request, and for it to do that, the contact first has to publish this information to its Jabber server. This process is also known as disco-publish. However, as far as I know, jabberd 1.4.x doesn't support disco-publish, and jabberd 2's support is flakey, last time I checked. That covers a big part of the installed base of Jabber servers. How is the support in other servers?