I've touched that subject before, but it certainly deserves its own post. First let us all agree on this: Communities are good for MMOs (actually, any product). Zynga would agree, CCP would agree, EA, Activision/Blizzard, .. anybody who says 'no'? Good...
But how do we design a game that makes players create communities? First, we need to give them some tools. For example guilds. That's already enough to make a small percentage of players create a community. And that's why virtually every MMO I ever played had these tools. But it's not enough.
The majority of players doesn't really want to join a community. And I can really report from own experience. I knew that I would have more (any?) fun playing Eve Online if I joined a community. And after a long time I did join one (arbitrary) corporation eventually. But then I didn't really 'like' the people there. It's not that they were unkind. I just didn't really like playing with them. They were talking about things I didn't consider interesting. And they did so in a way that I wasn't accustomed to. So, because I didn't want to leave them so soon after I had joined, I just stopped logging in. From a game designer's point of view this community magnificently backfired!
I don't really enjoy joining communities. And most people do not. We absolutely enjoy our existing communities, but we don't enjoy any effort to become part of a new one. And one reason is that becoming part of a community can absolutely not work out. Like in this example.
Of course, there are counter-examples. Some people absolutely love to create new friendships. I have a few real life friends who do it constantly. But they are a minority. Most people don't like creating or joining communities. They just enjoy being part of one.
Consequently, just giving the players the tools to create and administrate a community isn't enough.
Also, tools to find the right community for the player, are not enough. Eve has them, and now WoW has them. But, really, do you enjoy using the Guild Finder? Sure, you might like the result, but using it isn't that much fun. And one reason is that, while it's certainly of interest what activities your future guild engages in and at which weekdays, what is at least as important is whether you actually like the people over there. If you end up not liking the group of people you joined, the whole community aspect can absolutely backfire.
The second biggest problem with these tools is that they only help those players find a guild who actively look for one. The new players who don't actively look for a guild - some of them are afraid to interact with any stranger - don't benefit from from these tools at all. And, make no mistake, these players are often a silent majority! Moreover they, being new, haven't played the game for long yet, which means that they potentially have many recurring subscription periods in front of them.
This reminds me that I put Gevlon back on the blogroll. He did have some insights into WoW raiding lately which are worth reading. Even though I don't agree with many of his conclusions, he does analyze many problems correctly.
Next, you can give existing communities incentives to recruit new players. Eve, as well as WoW nowadays, do this. And it's not wrong. But it's still not really good either. This is how it works with me: "Pimpmix has just whispered me to join his guild. ... .. .... no".
Also, these systems can have side effects. Just look at guild achievements in WoW that made many smaller guilds dissolve, because players joined bigger, more anonymous guilds.
All these tools and ideas aren't wrong, but the best way to get players into communities is this:
You offer content that can be enjoyed alone. But you also make sure that it is slightly more efficient to group up. Make your players meet each other while doing the same thing. And make sure that they meet each other repeatedly. This way they will start to empathize with each other. They start thinking: “Hey, this guy has been here yesterday, and the day before. He is similar to me.” Yeah, you manipulate people. It's not always bad. In this case it is for their own good.
After being engaged in the same activity for some days / weeks, the players will eventually start to talk. It will probably require some kind of event for this to happen. For example, one player notices how the other one is in trouble after an unlucky pull and helps him out. The other one says “thanks” and so a conversation is started. A few moments later they group up to farm the mobs together, because it is slightly more efficient.
But even annoying things can help. Just yesterday I was on a LFD run with my rogue. I selected “need” for a locked box, like I always do. In my experience, non-rogues sell them unopened anyway, and nobody ever said anything. But this time the healer with a female avatar (that always plays a role, yeah, silly) complained. I explained myself and apologized (I am a nice guy as soon as you start to know me. It's just before we talked that I don't care). We ended up doing three more instances together whispering about the ridiculous tanks we got. Then we broke up, because, well, it's not like I will ever see you again, anyway. bb.
So, even if one char 'steals' some resource node from the other or even causes the other one's death, this isn't necessarily bad for the game.
I got to know the first guild I ever joined in WoW, and that I ended up main-tanking for two years later in TBC, by repeatedly meeting the same hunter and his shaman friend in instances while leveling. Eventually he challenged me for a duel. As an inexperienced mage vs. a hunter, I lost many times. I tried to keep distance, stupid me. Yeah, I even remember! I also remember about a year later me challenging him and beating him repeatedly with my new rang 12 armor set and by starting the duel inside his safe zone. haha! ;)
Anyway, this got us talking and ultimately me joining his new guild. God knows how long I had played WoW had I not joined his guild back then!
If you remember my first example about how I ended up not logging into Eve any more, you see why it is superiour game design if players talk to each other about something else than joining the guild, before they start to talk about joining the guild.
Summarizing, you want people to meet each other repeatedly while doing content on their own. You want there to be occasions that make it socially awkward to not start talking. You want there to be a slight incentive to team up now - and in the future.
And that's really all the magic behind it.