What you could do is create custom profile fields, then check those fields instead of the user group, like:
HTML Code:
if ($vbulletin->userinfo['fieldX'] == something) $styleid = x;
To answer your original question, you could use usergroups if you wanted. You could create a page with the options, then have a script to change the user's group based on what they choose.