Demitar, who didn't want to start a thread himself, came up with what I consider to be a great idea... using the data from the last game to balance the teams at the start of the next game.
This would eliminate the need to track people and record their statistics (which I am completely against and which would make me seriously consider giving up Nexuiz) and it would also avoid the frustrations of dynamic rebalancing in-game that would rely on changing scores, etc.
This way, no data needs to be saved and the teams are balanced (roughly at least) at the start of the game. Exactly what algorithm to use is easily up for debate, but that shouldn't be too difficult to figure out.
Aside from the simple algorithm of ordering the players in terms of score and assigning every other one to a different team, you could check the number of flag captures and frags and balance that way (e.g. the two best capturers end up on different teams, the two best fraggers too, etc).
It might be worth taking into account when someone joins the game as well and create averages such as frags/minute and caps/minute so that good players joining in the middle of a game aren't ignored. Also, the way scores are effected when someone leave the team might need to be considered as well.