The other day the client asked us to verify the field level security settings on the system. The reason, as they explained it, was that one of the lookup controls appeared disabled and wouldn’t become enabled regardless of what they did to FLS settings. Long story short, the control was disabled not because of the FLS but because user did not have Append privilege on the child entity.

In general, lookup control will be disabled if one of the following conditions is true:

Field is protected by the FLS and user does not have create or update privilege when creating or updating the record

User does not have Append privilege for the child entity (the one being edited)

User does not have Append To privilege for the parent entity (the one being looked up)