In fact this is not a very unusual request. I have worked with several customers who want their sales people to be able to create the Customers, but once created they are not allowed to change it again. Well they are allowed to change names, addresses and phone no.'s etc, but not to touch any of the actual customer fields like Credit Limit, Posting Groups etc.
The way it can be done is to only allow them In-direct access to update the customer table. Then all new customers are not created directly in the customer table, but in the Contact table. Then they used the “Create Customer” function and the templates to Synchronize the Contact into the Customer table.
Not sure if that’s more what you’re looking for. But it’s an easy way and doesn’t require programming. And if you don’t want the subsequence changes in the Contact table to be synchronized, then it’s not that difficult to disable that functionality in the code.