I recently created a PHP script that allows you to auto-create a vCard from a Salesforce.com Lead or Contact. Quite a few companies choose not to sync their Salesforce.com Contacts with Outlook. This allows you to put a Lead or Contact into Salesforce.com and pull the information into Outlook (or another PIM) on a one-off basis.
I decided to make the functionality available as my first App Exchange application. It is not searchable on the App Exchange yet, but you can click the link below to view its App Exchange page. The package consists of 2 custom links (one for Leads and another for Contacts). Once you install the package, you will need to add those links to your Page Layouts.
The script works by receiving the data from the Custom Link, parsing it and passing it to methods in the Contact_Vcard_Build PEAR package. Once complete, it writes the data to a file and presents it to you for download. It then deletes the file off of my server. At no time does the script have access to your Salesforce.com environment (you are not passing it a Session ID). The custom links open up a small window to execute the script. I have not been able to figure out a way for it to close that window upon completion.