Filtered Communication
This isn’t as important as communication itself, but by allowing communication itself to be a topic of communication, further communication can be stimulated. Communication filters are fine if they don’t remove too much meaning from the message and don’t become the default. If your virtual world has a “say” command, add “lisp,” “stammer,” “stutter,” and anything else you can think of. If characters drink 10 bottles of ale, replace all occurrences of the letter “s” in their speech with “sh.” It’s only a diversion, but if it prompts only one conversation in 10,000 it’s worth it.
Be very careful about adding barriers to communication. These can be unifying if done carefully, but they also can be counter-productive. Players communicate with one another in (usually) English, but their characters might theoretically be speaking Elvish. Therefore, if another character comes along who doesn’t speak Elvish, they shouldn’t see the English (“Thorina says something in Elvish”). Thus, the players with characters who can speak Elvish can operate as a community closed to those that can’t; it gives them an in-context secrecy filter that works naturally as a community boundary.
Providing a “common tongue” that all players can speak (in addition to one or more other in-context languages) is a way to enable communities to form across these language barriers; allowing characters to learn other languages is another way. If you do decide to use language as a community partition (as Dark Age of Camelot does between its three realms), you have to be confident in advance that you’ll have a player base large enough to withstand such partitioning.