If you were to try to graph all of the interactions of various players over the course of the game, you would end up looking like the insane guy who scribbles nonsense math all over the walls.
While it's important to understand the basics of how players will interact, trying to map it is a nightmare. Not only do players join and unjoin various groups at various times, but "group" isn't even something that really exists... it's just a vague, ever-changing bunch of people who tend to interact.
So, instead of thinking about players as players, I think about them as liquids.
Instead of having Anne and Bob, and having Anne be the good guy and Bob be the geek, I take a different approach. I say that I have a liter of Anne and a liter of Bob.
Like liquids, players adapt to fill whatever situation they are in. They rush towards any gap, regardless as to whether it's at all related to their character. They carry other players along and are carried along, intermingling. They can be smooth or choppy, depending mostly on the situation rather than the player. They slosh around, separate, splash out of the containers and all over the floor...
Obviously, you can take this analogy too far, but the point is that players cannot be thought of as "units". You are grossly oversimplifying if you represent a small game in such a way, and grossly undersimplifying if you represent a large game in such a way. So think of a player as a quantity, not a single unit.
This is important because any game, regardless of size, tends to form a specific number of "groups". "Group" is the wrong word, now that we've taken on liquids as our visual. Instead, these are "whirlpools".
The number of whirlpools depends on the way the game is designed. A game with a lot of careful politicking and secrecy will have a lot more groups than a game built around slapstick and short-sighted violence.
Generally, the games with the fewest secrets and politics will have two whirlpools, whereas games with a lot of secretive politics will often have seven or eight. The average appears to be four, with occasional temporary whirls here and there.
This is completely independent of the number of players in the game. I've played in games with five players that had six or seven distinct groups. I've played (and run) games with two dozen characters that only had three or four groups. I ran a twelve-person game just a few weeks back that only had two groups.
The difficult part in thinking in terms of groups/whirlpools is that we have an instinctive urge to identify them. "This group is psi-cops, that group is rebels..."
But whirlpools are not units any more than players are. The edges are fuzzy, and the center roams around. Plus, they are formed by the motion of the players, not by the intentions of the designer. The designer can build the game to promote whirlpools around and between specific players and things, but depending on how the players splash around, you will end up with whirlpools that don't act like you expect, or don't even exist where you thought they would. Over the course of the game, smaller whirlpools will form here and there, and sometimes they will even collapse the original, designed whirlpools...
There is a lot of chaos to the way that people play games, and as a designer you really need to accept that: fight it, and you end up with terribly dry, boring games. Instead of fighting the chaos, you need to build a game which is robust enough to handle the chaos. If your rebels and your psi-cops end up together, fighting against their common friend, your game still needs to be able to handle that without collapsing in on itself.
The funny thing is, if you design your game to be able to handle this kind of chaos, it usually doesn't have to: if the players deviate from the route you expected, the inherent robustness you've put into the game will guide them back on track, even if you don't intervene. This is because of what forms whirlpools.
Although players themselves can form small whirls pretty much at random, the stable whirlpools always form around keys. Keys are points of focus and, usually, conflict.
For example, if you have a game where the Woodgie-Boodgie of Koof can be used to either save or destroy the world, you will probably end up with two or three whirlpools around that alone: the group that wants to save the world, the group that wants to destroy the world, and probably a third group that wants to save pieces of the world.
It doesn't have to be a thing. For example, if two characters hate each other, that forms a barrier that pushes aligned players apart. If Anne hates Bob and visa-versa, then Charlie will tend to side with one or the other, rather than all three collapsing into a single whirlpool. The strength of this barrier depends mostly on (A) how much social force Anne and Bob can exert to stay separate and (B) whether Anne and Bob play their hatred up or diminish it in favor of getting things done. Both A and B can be tweaked by how you write up their characters in the game, so it's primarily your decision as to how the whirlpools form.
The name of the game is barriers, as you might be able to see. Whirlpools form when two groups of players try to stay separate and conflicting. In the first case, they're arguing over a widget. In the second case, they're favoring one or the other player. Any time you add a conflict or some inability to work together, it builds an invisible wall that can form whirlpools.
There are two basic methods that most designers choose from when it comes to building these walls.
One is to build a convoluted maze of walls: Anne hates Bob, Bob hates Charlie, Charlie hates Donald and Anne but loves Eugene...
The other is to build clear "rooms": Anne, Bob, and Charlie work together. Donald, Eugene, and Fey work together. Oh, and Charlie's a traitor.
The latter has the advantage that it will tend to fall out in similar ways each game. However, that lack of complexity is also a significant problem: when the "teams" are so clear-cut, you'll need to have the rest of the system be very interesting and powerful to keep them thinking and acting, rather than just being bored with a straightforward progression.
In Zombie: The Brain Eatening there were two groups: zombies and humans. It was very clear cut, and that meant that the rest of the game had to be complex enough to keep the players thinking. To that end, the horde were kept constantly distracted by their revolving characters and quest for upgrades. The zombies were driven to actually complete the game, so they were desperately trying to herd the other group...
The maze method of construction is also useful. However, I will tell you what happens: once the waters start to flow, some of the walls will simply crumble under the strain. Anne is supposed to hate Bob, but they really need to work together, so she'll stay in the same group as him. She'll just complain about it.
This isn't bad at all. It adds a lot of spice. But it is less predictable, more subject to the whims of the players. Usually, the same whirlpools will always form, but how much of which players are in which pools will vary hugely. Usually you can tell that a player will probably end up mostly in one of these two major, non-diametrically-opposed groups... but which?
This can lead to imbalance, so it's important for the GMs to keep an eye on the situation and add some extra bulk to the losing side if needed.
This theory has more advanced applications.
One thing you have to remember is that whirlpools don't have to be stable. Often, the most fun in a game is watching the whirlpools collide. Not even necessarily in conflict!
To this end, it's often a lot of fun to having moving or disappearing-reappearing walls. For example, if your game has an A plot (the widget can save or doom the world ) and a B plot (aliens are trying to steal human brains), it can be fun to slide the parameters around. The widget can only save the world if the aliens get fed brains... the aliens will leave if you give them the widget... the complexity creates new conflicts and alliances between whirlpools that were not, until that moment, adjacent.
A classic example of how to do this is in any game where you get memory packets as the game goes on. Reading a memory card will make you feel some way about somebody or something.
The downside of memory cards is that the walls they build are generally pretty fragile: if people are working together wholeheartedly, it will take one hell of a memory to break them up. Still, the more experienced players are usually happy to stir the pot, so they will often make mountains out of molehills, at least temporarily.
Another thing I like to do is the sacrificial whirlpool.
In this method, which I used and refined in my 6-7 runs of METEOR!, you build the game so that a lot of small whirlpools form... and one big one. The bad guys form up quick, teaming up rapidly into a whirlpool many times the size of any of the small ones. Even if some of the bad guys aren't participating in that same pool, they are still involved because of how their characters are written and all the information in the game clearly points to them as being involved.
So I basically force them together. But, you know, it doesn't take much force. I kind of push them together with feathers. Even if none of the bad guys talk to each other, their activities will still end up acting in concert...
This one whirlpool is very strong and dangerous, and the bad guys run around taking on the little whirlpools. The heroes are forced together, into one (in later runs, two) giant hero-pool, at which point they go and crush the bad guys. The walls between the heroes are torn down, any problems they have with each other, any incompatibilities are surmounted.
In the end, it produces a fun situation. Fun enough that they wouldn't let me stop running it until I moved away.
But the real weird thing about this is that METEOR! was a game of chaos. At the beginning, I literally handed out random superpowers. I stand around with a stack of superpowers and hand them out, one to each player, at random.
The design of the whirlpools had nothing to do with powers or capabilities. It wasn't done through revealed memories. It was done entirely through the character sheet. It was done entirely through who they remembered and what they thought of people.
And it worked fine. It began chaotically, but quickly smoothed out in every run.
It doesn't take a hammer to arrange your players to form interesting groups. It just takes a feather.