Hello Laurens,
I personally try to only use one type of user object which inherits from user (Account), and never expose the user objects themselves so MxAdmin cannot be manipulated in any way.
If you need multiple specialisations you can have different buttons to create each type, that's the recommended approach I believe, as it comes with the Administration module in a lot of apps - even though this module doesn't have two specialisations but treats web service users as if they were separate.
Hope this helps