One of the key things, I think, is having lots of little things to do that you can get immediate feedback from. e.g. Check the forum for new replies, rate new content, see what kind of response their content is getting, etc.
Kathy Sierra has a great article on this kind of thing:
Having strict moderation keeps the general quality high, which means it's usually worth checking back to see what's new. There are also multiple tracks of achievement, like hitting 500 comments, etc. so there is always a new badge within striking distance.
You don't even need to have permanent badges. I have a list on the front page of the people who have submitted the most ratings that day. You don't get anything from being on the list, but people try to get to the top anyway. People like seeing their own names.
Having a friendly community is also a big help, since it means that other users are a direct source of positive feedback. That's a bit harder to develop, though.
In fact, I would wager that a number of us here on HN are engaging in highly addictive behaviour.
- WOW: experience
- T61: karma for hearting songs you like
- Every forum ever: titles for number of posts
- HN: karma for comments / submissions others like
- StackOverflow: practically everything
For example, if users have to enter information to make your service more usable, give them a progress bar. In general, let the user "grind" - give them small, repetitive, mindless actions that are easy to accomplish and give instant, positive feedback. Above all, make the experience simplistic enough that they know what to focus on but interesting enough that they don't leave.
Reputation systems that have an effect in a community can also make people come back. Just look at HackerNews ;)
- data, stats, and awards. People like to see how many posts they've made, how much karma they've accumulated, how many songs they've listened to, or how many zombies they've killed. They like to be given titles or trophies for passing milestones.
- feedback from friends. Even better than getting that 10,000 zombie trophy or that new forum rank is getting congratulations from your friends on your accomplishment.
- tickle the senses. Pretty graphics or sounds make for a neat experience in games or certain social apps. (The game "Auditorium", at playauditorium.com, is fantastic for this!)
- replayability. The experience should remain fun time after time. In a game, the challenge should have some variability. In any app, the "rewards" -- karma, titles, pretty graphics, or what have you -- should update often enough that users are consistently reminded of them. For socially-focused sites, it should be easy for users to generate good content for each other so that each visit seems rewarding. (Example: Grandma finds it rewarding to see new pictures of my baby. Facebook makes it easy for me to upload new pictures, and easy for her to view them, so she gets new pictures fairly often. Therefore, Grandma is addicted.)
Strive for a "playable" UX and addictiveness will come naturally.
I don't know whether it works in practice though.
Tell people exactly how to proceed to a next step.
At that next step, reward them beyond what they could have expected.
If I had to quantify why it's because of quality content.
Especially with regard to comments.
The headlines change relatively quick.
And come to think of it, +1 for cloudwalking's comment.
There's reduced friction here. eg. minimal visual noise.
I use Google Calendar instead of iCal because it's integrated with my browser through Google Toolbar. I can add add an event by highlighting some text and clicking in the toolbar twice. Bringing up my calendar takes one click.
1) Content needs to be an look interesting for the target audience.
2) Content needs to be fresh and look fresh.
3) Users need to be able to add and enrich the content, in natural way.
2) Something new every 15 minutes