Names.nsf on your server is more than just your corporate name and address book. It contains all sorts of configuration information related to your environment. Names.nsf to your Notes Servers is like the Registry is to Windows.
The Notes Mail template (6.0 or later) has a built-in Action called "Synchronize Address Book", which synchronizes all contacts from the user's local address book, and puts them as entries into the user's mail file. You may not notice a Contacts view or any Contact documents while viewing the user's mail within the Lotus Notes client. However, if you were to share a user's mail file via the Web (on a Domino server) you could view their contacts through that interface. In fact, the point of the synchronization agent is to get the user's mail AND contacts into one NSF, so that it can be easily replicated to a Domino server as one unit and not two separate databases.
I've personally tried this idea facing a similar challenge as yourself: I reviewed the Synchronize Address Book agent and set it to run when the database is opened by the user. That way, the address book is constantly up-to-date. Then regular mail replication forces the server copy of the mail file to contain the latest list of contacts for that user. Accessing the contacts would just require you to look in the user's Contacts view in their mail file.
An alternate method is to ask users (or build an agent to help users) to create a new replica of their local address book on the server. I've also done this as part of a migration and it works well. In fact, you can easily write the LS code to do this in a button, and send it to your users in an email. The code just needs to find any local address books using the NotesSession property "AddressBooks", then make replicas of those databases on the server.
Hopefully this gives you a few ideas how to approach your problem.