If you're going to use the Login component, it will handle the extended fields automatically for you. All fields that are not one of the modx_users or modx_user_attributes table will be set to extended fields. You can also add as many you want. With the Login snippets you can also use a parameter to exclude from extended fields, which you don't want to save for example.
If you just want to save and show that extended fields then using this method is fine. When you need to do some advanced searching I suggest to extend modUser with your own and create an own database table to store the data you want to store for each user. I did this a couple times and it is great working like that. If you do it this way you can build advanced queries, but also do things like $user->getOne('YourObjectThing'); or fill your own "extUser" model with own methods, for example: $user->myOwnValidationStuff();
Another option is to create just an sort of component, without extending modUser, but I dislike that... I love the way to extend modUser
Read about that over here;
http://rtfm.modx.com/display/revolution20/Extending+modUser
The first time it was difficult to get it working, but now it's like baking eggs