As a seasoned developer, you probably realize users will make mistakes. What's particularly daunting is the range of possible mistakes that users can make. Here are some common examples:
Users might ignore an important field and leave it blank.
Users might try to type a short string of nonsense to circumvent a required field check, thereby creating endless headaches on your end. For example, you might get stuck with an invalid e-mail address that causes problems for your automatic e-mailing program.
Users might make an honest mistake, such as entering a typing error, entering a non-numeric character in a number field, or submitting the wrong type of information. They might even enter several pieces of information ...