If you use Codesmith you can get a jump start on a lot of code using templates I have written. You create your tables in the db then run Codesmith templates against it. If you look in the CodesmithTemplates folder in the mojoportal source tree, you'll fnd a .zip for an older freeware version of Codesmith. Most of the scripts can work with that version, but if you have the budget I highly recommend the newer version. I have a training video link on this page where I talk some about using Codesmith.
You can customize the user profile system and define arbitrary properties and you can specify that properties are required for registration.
You can write a custom handler for User Registered Event and put your custom logic there to add the user to a role or whatever you need to do.
Hope it helps,