The company I'm working for at the moment asked me to write a module that took advantage of Octazen Solutions Address Book Importer to find friends on their site, and invite individuals that are not on the site.
The module looked very much like the contact importer on facebook. The user could enter the email address information, or upload a CSV file from outlook or thunderbird.
The second page was a list of users that were already on their site. This list was built from a basic query to see if the email address was on the site. The adding of friends is facilitated by using the user_relationship module.
The next page is a list of users that are not on the list that could be invited. This invitation process uses the invite module. The selected users are put together in an array, and invited using drupal_execute to submit the form programmatically.
The module turned out really nicely. I used multipage forms for the 2 lists because they were pretty much the same form. The Octazen Solutions Address Book Importer works great. Buying the license got you the updates for a year. Those updates are key if the other companies (gmail, yahoo, msn, etc.) change their system, Octazen sends out an update ASAP. What I didn't like was that they don't have AIM or MSN Messenger contact importers.