...the email field in my clients data entry system is required but users of the system are allowed to enter firstname.lastname@example.org if the customer refuses or doesn't have an email address. Is this best practice? Have any suggestions or workarounds for their solution?
It sure isn't best practice and impedes users' trust for at least two reasons :
The first advice would be to explicitely indicate the purpose of asking for the email address. Something like "required for account confirmation/activation" or "required for monthly account activity summary" can be enough.
The second is to stick to this, i.e. not use the email address for any other purpose. If asking for the email address during the registration process is just a way of taking advantage of a process where the user provides data to ask for a piece of information that might be used in the future, it is ok but you need to make it clear with something like "required for ... and for occasional communication about our products and services".
The final piece of advice is to implement an email address validation system (that will display an error message if the user provides a string that cannot be email address). There is no bulletproof approach but some have figured out pretty efficient ways to check if an email address is at leat well-formed (see StackOverflow question here).
You might also consider maintaining a list of obviously wrong addresses that you can check the user's provided address against or even try to implement a live validity checking system like http://verify-email.org).
As a final note, it is obviously not worth searching for an automated way to validate that a user is submitting true information. Perceived value is the only driver here.
First, what is the use of "data collection" if the data is not used otherwise than harass the users? Not cool.
Anyway, explain why you ask for such data as my email - if you don't have a real answer, don't ask.
"Best practice" depends actually on the very use of the data.
For example Hubspot requires a fairly complex data form for its free download of (great) content. The data is not validated in any way, you might put anything in. Citation needed, but they said, the sum of real contacts is a lead generation source for them.
But they are a well known brand and consistently offer pretty good value.
Unless the data is going to be used, don't require it. Segment the form. Put the really required items up. Simply be nice and ask for any supplemental items below, or later.
If you really make it difficult for users (useless email validation, blocking of disposable emails, captcha, etc), they will hate you.
If they have a choice, they will forget you.
UX Movement recently put out a good article discussing a closely related topic. They concluded that requiring fields actually causes users to fill out less information. With that in mind, I would suggest that requiring data only makes sense when you absolutely must have it in order to proceed. Pretending to require data is probably even worse, as you seem to have rather pointedly discovered through your own experience.
I guess what I'm asking is... have you considered the opposite approach? Require only the barest essentials, then allow users to over-disclose the rest on their own.