If you are using Filemaker 11 or newer, you can use the OnObjectValidate trigger to run a script that:
Uses Set Error Capture to suppress error messages
Commits the Record
Uses Get (LastError) to check for a validation error
Then displays a custom dialog explaining the error
and reverts the record for the user--elminating the rather confusing revert dialogs.
uses Exit Script [false] to cancel out of the script, returning the user to the field--where they can correct the error with the record still opened for editing.