Most customers use our SSO client to create users, but the users/add call does allow you to create SSO users now (just make sure you always pass the user.sso_id parameter instead of the user.new_password parameter). I don't believe we even supported creating SSO users via the API until fairly recently (we only supported creating non-sso users). Using the SSO client and passing a token to the community is still by far the most common way our customers create new users. Even if you do pre-create users using the API, you will still want to use the SSO client to authenticate users into the community, but the users/add API call should let you pre-create them on your end, so you can skip the SSO user registration form.
Your community can also be configured to skip the SSO user registration form if you want to continue to use the SSO client to register users and would prefer to capture the information on your end. Create a support case if you would like to turn off the SSO user registration form.
If you continue to use the form, you can style it however you like using CSS in your Skin. Certain fields can also be added to the form by a back-end configuration change (I think Lithium Support should probably be able to help you with this). The fields that can be added/removed are login, email, birthday, user is 13 or Older (checkbox), terms of service, first name, last name, time zone. If you need to add other fields to the form, you will want to engage with our Professional Services group for help with that.
-Doug