Is it appropriate to add auto capitalization on input fields where the user has to add first or last name text?
Auto capitalization is impossible. What algoritm would you use to auto capitalize when a lady enters "cléopatra diane de mérode" as her name? You would probably end up with things like:
- Cléopatra Diane De Mérode
- Cléopatra diane De mérode
The only correct spelling however is "Cléopatra Diane de Mérode" (wikipedia). As you can see, capitalization of names can be a tricky thing.
If the user would enter her name with correct capitalization, you would probably turn the correct name into something incorrect. Auto correction can easily turn into auto incorrection.
This name was just an example to prove a fact. In reality, many names have strange capitalization.
I would suggest no.
Treat a person's name - in terms of capitalization, spelling, punctuation and spacing - exactly as the person does. 
There are a variety of cultures with names that does not use capitalization in all parts of their names.
It's true that most traditional English, American, north/central European names are written with capitalization of the first letter in all parts of their name.
However, in Eg. Latin and Dutch cultures it's very common with names that are written as
- Suzanna de la Cruz
- Nick van de Kamp
- Vincent de Paul
- João da Silva
If there is an auto capitalization for the input when the user fills in names such as these it could easily confuse and frustrate the user. Maybe even put her off enough to abandon the service.
Conclusion, it may be convenient for most western civilization users, but a bad experience for a considerable part as well. Let the users have full control of how their name is written.
As others have mentioned, Dutch names like mine, even after they've been mangled into something English-like, can still have strange capitalization. If you tried to change my name to "Teneyck" after I entered it, you'd just irritate me.
If your clients are unwilling to spell their own names correctly, it's not your job to correct them.
The best experience for the user is to let them review how their name looks on the site and allow them to change it whenever they are displeased. This approach is similar to GMail not asking for confirmation when deleting/archiving but giving you the "undo" option right after.
Yes, it's good to suggest the autocapitalization, letting the user change something if that gone wrong.
Just be sure to define who your audience is: there are several algorithms to deal with particles like "de, da, e" in Brazilian Portuguese, for example: Lula da Silva, Pedro Bento e Silva, etc.
Similar rules can be used for "van, de, la" etc., and even for "MacRae".
References on how to deal with autocapitalization:
How about a simple rules-based defensive approach
- if a user takes the time to capitalize his/her name -> assume it's correct
- else (if all lowercase) ->
- if name consists of 2 terms -> assume firstname + lastname -> capitalize first letter of both firstname and lastname. This is not correct for lastnames like 'MacLeish' but 'Macleish' is arguably 'not worse' than 'macleish'. It however takes care of the majority of cases.
- if name has more than 2 terms -> don't attempt anything.
I would make a distinction between "autocapitalization" before and after the user types. On the iPhone when users "Add Name" in Contacts, the shift key lights up. If they don't want the name capitalized, they can deselect the shift key first. It does something similar when users type messages, at the likely beginning of sentences. I find this helpful - most of the time I do want names and the first word of sentences capitalized.
What the iPhone doesn't do is "correct" typing after I have typed a name. That sort of behavior steps over the line into the machine presuming it is smarter than the user - an annoying, classic violation of the principle of bias toward user control.
I just hope Apple hasn't patented the shift-key-light-up concept. --Jim