A única maneira sensata de lidar com isso, na minha opinião, é deixar os usuários dizerem como seu nome deve ser capitalizado. Qualquer esquema automático vai incomodar alguém.