Came across this issue at a clients, they where running Exchange 2010 although this would also apply to Exchange 2007. When a user in Outlook was NOT in cached mode and they went into the Global Address List to select users to send an email to they would see accounts of people who have not got a mailbox attached to them, were not mail enabled and did not even have an email address associated to them. These accounts why greyed out in comparison to the normal accounts.
I tracked this down to that the client had cloned some accounts from an account that used to have a mailbox attached to them. Before cloning the accounts he had removed the mailbox from the template account however it had left the Exchange attribute “ShowInAddressBook” populated.
To resolve this issue , we need to run Adsiedit. When in Adsiedit open up the Default Naming Context then open up your domain name and browse to the OU that the user is in that you need to modify.It will look like CN=Yourusername. Right click the user account and select properties. Then under the attribute editor browse down to ShowInAddressBook as seen below.
Then select Edit. Then simply remove the entries ( all of them ) that you see by highlighting and selecting remove.
Do this for all the users who have this issue.
The next time your GAL rebuilds these accounts will be removed. This normally runs once per day. If you are impatient like me you can drop into power shell and run these commands to update it immediately.
Update GAL And OAB Immediatley.
To update the GAL run
Update-GlobalAddressList enteryourGALhere
Remember this will only update the Global Address list, if users are in cached mode we need to update the Offline Address Book ( OAB). To do so run this command.
Update-OfflineAddressBook YourOABnamehere
Give it time to populate both address lists. Your clients will update on their next scheduled download of the GAL and OAB.