We've used Google Apps to achieve this goal. By creating a generic user and adding company contacts to that user's account, you can effectively share contacts with other users. Here are the steps:
1. Create a google apps account (https://www.google.com/a/cpanel/domain/new)
NOTE: If you already have a google apps account, you can skip this step.
2. Login to your google apps account as an administrator (http://www.google.com/a/YOUR DOMAIN HERE]).
3. Once you've logged in you'll see a blue navigation bar near the top of the screen. Click on "Organization & Users"
4. Click on "Create a new user" and fill out the info for your generic account. Here are the settings I used:
First name: Company
Last name: Contacts
Primary email address: contact
5. Don't forget to set a new password -- choose one what you are willing to distribute to your entire company. That doesn't mean you should use an easy one, but don't use one of your personal ones.
6. Once you've saved your user, you can sign out of your administrator account.
7. Now log in as your new user
8. Read the terms of service and accept if you agree to the terms.
9. If you chose to use the temporary password, you will have to set a new one now.
10. Now you're all ready to add some contacts. Click on the "Contacts" link on the right part of the screen.
11. You add contacts by clicking the "single person" button in the upper left. To add a group use the "two person" button. Add all your company contacts.
12. Now you can click on "Export" on the upper right to export your Contacts as a CSV. This is useful for importing into your personal Gmail account or other account.
In the next post, I will list the steps for syncing your Contacts directly to your iPhone.