1. Give guests full use of all the features of the site. Posting, editing, befriending, etc. Store this information by identifying them by the combination of IP + username (which they have to enter for each post) or something similar. This will encourage them to participate (no barrier to entry) and let them decide whether or not they want to become a full member.
2. If they register, link everything they posted while they were guests to the new account, i.e. change the username on all the old posts (if necessary), etc. That way they don't lose all their stuff.
3. The only required information should be a username and password. An e-mail address should be optional, with a warning that if you don't provide one you won't be able to recover your account if you lose your login details. Naturally you should be able to provide one later if you decide you really don't want to lose the account. This keeps the "You just want to send me spam" people happy.
4. No mandatory confirmation email. When you click submit on the registration form you should be logged in and ready to go. Opening your mail client/website is an unnecessary and annoying step.
I might have missed one or two points, but adhering to these rules should take the majority of the pain out of registering.
I once tried to establish an OpenID account for stackoverflow, but it was too much of a hassle so I didn't bother registering. Users can just reuse names and passwords. It sucks from a security perspective, but unless you can make it transparent to the user, you're pretty much boned because no one will want to use it.
When it's something as crucial as keeping track of your customers and users, don't "outsource" it unless there is a very, very compelling reason.