Hi Damienkrol – if i understand your question correctly, you can achieve part of what you’re trying to do using Address Lists. While you can only have one Global Address List (GAL) per user (you can actually have multiple GALs in Exchange, however each user should only have permissions to view one GAL, otherwise the Outlook client will simply choose the first one every time), you can have multiple Address Lists (ALs) in Exchange.
You’ll then want to add all of the company contacts to this AL, and repeat for other companies as needed. And yes, you can set permissions on the AL so that certain Exchange users have rights to see all ALs, and other users only see some, or none.
I can’t think of a way to achieve the task management that you’re referring to with out of the box Exchange 2007.