Another lesson I've learnt from spending some time answering support emails recently is that people don't always expect computers to be clever.
This seems contradictory to the (apparently mis-)conception that people think computers are clever and can do remarkable things.
The issue in question relates to the entry of a unique alphanumeric code. This code is printed on an insert that is distributed with various products. Anyone purchasing one of these products can enter the code in a website to enable certain movie downloads. The codes are 16 characters long and divided into groups of four characters with a hyphen. (The hyphen is intened to break the code up and make it easier to read.)
Unfortunately, some people have trouble reading and/or entering the codes. To try and solve this problem themselves they try and use a different case, or use spaces instead of hypens, or remove the hyphens completely.
In this instance it makes absolutely no difference. The website is smart enough to ignore case and any spaces or non-alphanumeric characters. This was deliberately done to try and account for variations in the ways people may enter the code.
So why do people try these variations?
Because for a lot of other situations/apps this may [have] work[ed]. That they do respond to this is simply due to not considering the user adequately. Indirectly, they are also teaching users that they must do things in special ways that are easier for the computer and not them. This definitely contradicts the idea that computers should make things easier for people.
None of this is the fault of the computer or the person trying to enter the code. This is learnt behaviour, caused by prior experiences with other poorly developed software.
The real problem in this instance is most probably due to the legibility of the printed characters. A separate issue that is being addressed separately.
The other lesson to learn here is that when making software (or anything?) that works much better than anything people have used before you have to teach (or tell) the user that what you've developed is better.