One of my biggest problems with Foursquare a bunch of other gaming-type of apps that have leaderboards or things like mayorships is that they’re calculated as “all-time” stats and provide less and less opportunity for new users to compete. That’s a big problem when you need to get new folks excited and motivated to use your application.
For example, let’s say you just now joined Foursquare or just now start using it. From what I understand, the mayor of your local coffee shop got that title based on being the person who has checked in there the most. Therefor, over time, as that person continues to check in and accumulate check-ins to that location, there’s less and less of an incentive for someone new to the system to check-in as it’s hard to compete and catch-up. Same problem goes for games that have points leaderboards. If all you provide to users is a “Top 100” users and it’s based on all-time points, it’s very hard to incentivize a new user to care about that leaderboard since they’re out of the race the second they start.
I’m by no means an expert on B2C startups and gaming mechanics, but I much prefer approaches that utilize things like “player of the week/month” or other mechanisms that level and refresh the playing field and make it more continuous. If you do that, you have a much better chance of giving new users a reason to compete and get them hooked.