I also know Americans who go by their middle names because everybody in the family has the same first name, with the first name turned into an initial before their middle name. Usually software can handle this by entering "J Bob" in the first name field, but not always. Sometimes software asks for first name and middle name separately, and then you know you're going to have trouble because another system thinks "J Bob" is your first name and the two won't match.
I think a single field for the entire name would be ideal, with an optional second field for "how should we address you?" so that the software doesn't have to play games with asking gender and breaking out the last name to fill out a form letter with "Dear Mr. Smith, ..."