Openid account validation without password reset
If you want your users to be able to setup their own password, check out LoginToboggan. It adds password fields on the front-end user registration page and optionally links non-verified accounts to a "temporary" role on the site, if you want to limit their behavior/actions until they confirm the email.
It also features a lot of other goodies and tweaks, which make the registration/login process much easier.

Another option is Email Verification, which checks if the domain or host of the email address exist, and tries to validate the account by sending HELO/MAIL FROM/RCPT TO to the host's SMTP server.