There are plenty of workable ways of encouraging people to move countries, but I think for any to work well they need to focus on the problem from a longer-term perspective. Constantly modifying the rules as people log in is going to cause all kinds of unpleasant artifacts - some which will damage important positive aspects of the game (squad ops, joint operation nights, low player count times, making friends, etc).
I would suggest maintaining a running average of team player counts over time (say a week), and try to balance that number, not the instantaneous player counts. Basically, only put whatever incentives into place when the instantaneous player counts are apreciably off AND they are off relative to the direction of the long-term average. (See end of message for example)
The point is to have a subtle push towards long-term stability, not some wierd gameplay mechanic that interferes with people doing what they want, when they want to do it. Team loyalty (getting to know the folks you fly with) is a hugely important and rewarding part of the game, and I'd hate to see that go away. I don't want to switch teams at all because I know the folks I'm flying with and who I can count on and who I can listen to.
Similarly, mechanisms to encourage new players into the teams that have the long-term average disadvantage would probably be a much nicer, more subtle - and long-term solution to what sould be viewed as a long-term problem.
- SkyGnome
Example:
Week long average (in percents): 40/25/35
If current player count is 37/30/33 - no bonuses because despite a small imbalance, the trend is positive.
If current player count is 41/25/36 - middle team gets a bonus because the trend is in the wrong direction - just enough to encourage migration.
And basically, once the running average gets reasonable, leave the teams alone. Let there be instantaneous numbers disparity - it's fun being outnumbered if it only happens sometimes!