You could combine an OnObjectModify + OnObjectExit script trigger with a Filter() calc to compare the actual field contents with a cleansed version of the field contents.
If they match, all is good and you can move on. If they do not match, an invalid character has been entered and the user can be alerted with a dialog.
I would include upper and lower case alpha characters and a space, hyphen and apostrophe in the filter function as they would all be valid characters in a name.
You'll also need to apply validation to the field as the script trigger will only fire when a change is made in the field and/or when the user exits the field.
I have uploaded a quick demo to http://www.nicheit.com.au/downloads.php for you to download.
You could try simply settng the field to auto-enter by a calculation Filter ( That Field ; "abcdef... etc " ), with 'replace value' unchecked. When the user exits the field will update with the filtered values.
Filter ( Upper ( Self ) ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ) = Self
is one validation test you can use as a validation rule specified in field options.
Note that filter is case sensitive so if you want to use an auto-correcting auto-enter calculation for this, your quoted string must include both upper and lower case characters.
I really appreciate the responses. They are all VERY helpful.