Its amazing how many poorly designed forms are still out there. And if I am frustrated, I can only imagine how less tech-savvy users feel. After dealing with one terrible form after another over the last few days (for loan consolidation applications), one phrase kept popping into my head: "Why can't they just take care of this for me?"
Now, there are usually two ways to deal with data entry errors. The first is to let the user know the information they entered was incomplete or incorrect. The second is to accept the entry and fix the errors behind the scenes.
For example, when entering dollar amounts or phone numbers, many times there are special formatting rules (like requiring a decimal point in the dollar amount or separating groups of numbers in a phone number with a dash). Instead of giving the user error messages telling them to fix small formatting issues, why not just take care of that behind the scenes? Why not just write functions that accept multiple data formats and then change them as necessary before they are recorded.
Is this a bad practice to change the data the user thought they entered without them knowing? Is this going to cause problems when they have to re-enter the same information later? Possibly. But most of the time the information that is guilty of inconsistent formatting standards isn't information that is repeated and I don't think it's problem. Obviously for a password or email address that is incorrectly formatted, let the user know they screwed up and how they can fix it. But for purely semantical errors, I'd be fine with the form fixing the error for me. Don't tell me I entered my phone number with dashes instead of spaces. Just fix it. The data is correct, its only the format that's wrong.
Yes, most of these problems can be solved with proper front-end form design and labeling to ensure that the user knows how to enter data properly from the start. But you always need a second line of defense as users will make mistakes. So in conjunction with proper design and labeling and relevant and descriptive error messages when the data requires it, why not also fix small formatting issues behind the scenes. Remove the last few unnecessary steps that could cause the user to abandon the process. Basically, let the application do the work, don't make the user.

