I (Erik) have proposed a new system which would work as follows:
1) User creates account, chooses e-mail address and nickname.
2) User gets autogenerated password (no confirmation URL like currently) and logs in using said password.
3) Upon first login, user is redirected to preferences page where he can set a custom password and various other stuff (if a new var, show_prefs_on_first_login, is true).
Cory King has proposed a slightly different process:
1) User creates account, chooses e-mail address and nickname.
2) User gets e-mail with an auto-login magic URL that, when clicked, automatically logs him in and puts him on the preferences page where he must set his password and can optionally set other prefs.
Another idea was to allow the user to set the password already during account creation together with the nickname and email address, and let him activate the account (and automatically log in and set the remaining prefs), using the magic URL.
Various arguments for and against the different proposals have been presented. Please take the time to look at them and then vote.