First name and last name field in online sign up form is the most irritating fallacy that User eXperience designers made. Period.
Assuming that every single person in the world have first name and last name part is just so wrong and ignorance. Even assuming that a person has name that consists of two or more words is not good (an example: my father’s name only consists of one word). Even if they indeed have name that consists of two or more words, making assumption that the last part of their name is their “last name” (or “surname”/”family name” in western cultures) is not correct approach either (an example: Japanese names generally in the form of “family name” followed by “given name” thus the last part of their naming system is not the “last name” in the sense of family name).
Asking user to just fill one single field of full name is, in my opinion, is the best approach. In the underlying system of the web application itself, we don’t really care about storing first name and last name information anyway. The system will still can distinguish between different users by their user_id field, for example. Storing just full name field instead of separating them into two fields of first name and last name can also save more spaces (you’ll have one less column in your SQL User Table).
“If designing a form or database that will accept names from people with a variety of backgrounds, you should ask yourself whether you really need to have separate fields for given name and family name”. Hey, even folks in w3.org agree with me! 🙂