The best way to add extra fields to the wordpress user registration form that I know of is to use the related registration form filters:
- register_form – This is used to add your fields to the registration form
- registration_errors – This is used to validate your fields
- user_register – This is used to add your custom user_meta data to the system
- and maybe register_post – This can be used to do other things pre-validation