Custom fields defined on a person's profile can be individually restricted. To do this, go to the person's profile and manage their permissions. In the popup that appears, click on the "Custom Fields" tab.
All custom fields defined on a person's profile will appear. You can mark each as follows:
Hidden - the user will not see this field at all
Read-Only - the user will see this field as well as the current value
Editable - the user will be able to edit the value of this field. This does not allow them to edit the definition of the field (i.e. change the name, manage drop down values, etc.). Only the current value can be changed.