Some Jabber services make it possible to communicate with users on other instant messaging networks (e.g. MSN, ICQ, AIM), in effect turning your Jabber client into a multi-protocol client. These are called gateways or transports. They work by impersonating you on the legacy network; therefore you need to provide your username and password through registration.
To use such a transport, you first need to find one, obviously. Sometimes your home server provides the transports you need, but you are not limited to those; in principle you can use any transport on the Jabber network. Some transports only accept local users, though.
Transports are generally mentioned on the web page of the Jabber server in question. You can also find transports from within the client; see Service discovery.
To register with a transport, type M-x jabber-get-register and enter the JID of the transport. This will open a registration form where you get to fill in your login information; see Registration. You can later use this same form to change the information or cancel your registration.
After you have registered, the transport will request presence subscription. It needs that to know when you are online, and synchronize your presence on the legacy network.
Once you are registered, the transport will transfer the contact list from the legacy service. From the Jabber side, it appears as if lots of people suddenly request presence subscription to you. This is somewhat inconvenient, but it is currently the only way that the transport can influence your Jabber contact list, as it is an entity external to your server.1
When you have accepted these presence subscriptions, the contacts from legacy networks appear as if they were Jabber contacts.
Some legacy networks have a global database of users, and some transports support searching that database. In that case, you can search for other users with M-x jabber-get-search; see Search.
 Of course, jabber.el could do more to alleviate this inconvenience.