The website of the U.S. House of Representatives provides a page for sending email to your Representative. To determine which Representative your letter should be sent to, the form asks for your home state and zip code (see figure below). If you type your zip code but neglect to choose a state, an error message is displayed saying that "you must select a state" as well as a zip code. Although a state alone is not usually enough to determine one's congressperson, a zip code should be enough, since the zip code fully determines the state. Obviously, the form implementation is too simplistic, probably to save development costs. I would bet that most people who use this page initially give only their zip code, get the error message, emit a sigh (or curse), and then give both state and zip code.
Earthlink.net, the website of the well-known Internet service provider, provides a function for looking up Earthlink's dial-up access phone numbers in cities around the world. For example, if an Earthlink customer were travelling to New York City and wanted to connect from there, she could use the function to find the local access number. However, the number lookup function is too demanding: to determine where the user will be, it requires that you give it a complete phone number (see Figure below) even though an area code would, in principle, be enough. Customers who don't yet know where they will be staying might not have a complete phone number. All they would know is the area code. In such situations, customers have to make up a phone number. Even when customers know a phone number where they will be, why should they have to type it, when an area code will do?
Earthlink's developers might argue that some area codes have more than one access number. Fine, but when a user gives a complete number, Earthlink.net displays not one, but rather a list of access numbers in and around the specified area -- the same list that would presumably be displayed for just an area code. Therefore, requiring a specific phone number as input is pointless.
Stanford University's website, Stanford.edu, provides another example of requiring too much. People who want to register for Continuing Education classes are confronted with a confusing form that says they can provide either their name and social security number or, if they have registered previously, their Continuing Studies Program (CSP) ID number (see Figure below, left). Most people who have a CSP ID number would assume that supplying that number would be enough. But no, it isn't. In violation of common sense as well as the design of the form, users must also provide their last name (see Figure below, right).
Ask for the minimum amount of data you can: only what you really need. If you aren't sure what you will do with a certain piece of information, you don't need it, so don't ask for it. Don't make any data "required" unless you really can't proceed without it. Asking for data that you don't really need scares privacy-minded people away, hampers customers from achieving their goals, and slows throughput at your site, thereby hindering its success.
When someone gives you information, deduce as much as you can from it. Use what you know to fill in other datafields if possible. It would be very unfriendly for a website to ask visitors for both date-of-birth and age, since age can be deduced from date-of-birth.