In the end all you need to do is create a User object and possibly set a password on it. That's it. Create your own form for it and go wild.
I strongly suggest wrapping the view in a @has_perm decorator so that only people who are allowed to create users (or some other permission) can get to the view. Even if a user doesnt have "staff" privileges (ie, cant get to the admin screens) the "admin.create_user" privilege is useful for this purpose.
I have an application that creates users with an admin method, but immediately sends the user a "we created a user for you, follow this link to create a password" email message, where the link is derived from the admin "reset_password" code.
The relevant function is in artshow/admin.py, ArtistAdmin.create_management_users()
and the link just goes to wherever the password_reset link would have taken them. Unlike django-registration, the built-in password reset function is totally stateless. The "code" is actually a hash of various variables including the user id, the time the reset was request, SECRET_KEY... so it doesnt actually need to store the codes used. it can just check the hash for validity.