You're likely overthinking this. There's no need for a second field. You can handle this requirement with a combination of Conditional Formatting and Script Triggers.
Conditional Formatting can be used to change the appearance of the field when the "lock" condition is true.
You can use either the OnObjectEnter or OnObjectKeystroke Script Trigger to run an appropriate script when the user clicks / tabs into the field, depending on whether you want the user to be able to copy the contents out or not. (Yes = OnObjectKeystroke, No = OnObjectEnter) The script simply kicks the user to the next field in the tab order and optionally provides an alert to the user that entry is forbidden.
Mike, thanks for that. That is 100% more efficient and I am not sure how I overlooked conditional formatting especially since I was just using it for portal records.
The script trigger you mentioned seems to be a really good way to handle the input control. I appreciate the input, very helpful.
Just be aware that such interface-based contrivances are not a complete solution. A user who has access to import records, for example, can still override them. So you have to account for that.
Further, they're specific to the particular layout in question. So if the user can somehow access the field through another layout, then he can bypass the "lock" despite the condition.
Therefore, you probably want to take a look at schema-level validation through the Manage Database dialog if you want a higher level of control.
In this case, this is more of a one time user experience on one particular layout so the solution you provided fits perfectly but thanks for the direction when considering the solution for other options.