This is a mostly client-side question, unfortunately, as there isn't a standard server-side solution to storing address books (though IMAP folders can effectively store arbitrary data, so if everybody agreed on an addressbook format, we could all stick them in IMAP folders).
Thunderbird can be configured to share an address book via a variety of methods, including IMAP (using an add-on called synkolab), LDAP (using a variety of sync tools), and shared folders using DAV, FTP, etc. None are particularly standardized, and none are particularly easy to use across multiple mail clients.
Usermin currently doesn't support much in the way of shared address books that can easily be used with other clients, though it's been requested a bit over the years. If there were a standard/popular way to store address books in an LDAP directory or in an IMAP folder, I suspect Jamie could be convinced to support it (synkolab might point the way for that, I'm reading up on it now). Usermin does have a system-wide shared address book feature for all Usermin users (which works with the user's individual address book, as well). Getting that out to other mail clients would be tricky.
But, in short: The solution you're looking for is not simple. It requires all of the mail clients to agree on how to share their address book. As far as I know, very few of them agree. Thunderbird probably has the widest support for shared address books, however, so that is probably where I'd start. Here's some documentation on the subject: http://kb.mozillazine.org/Sharing_address_books
Disclosure: I work on Virtualmin, Webmin, and Usermin.