In regards to RTS games with factions... has anyone played Majesty 1 and 2? I love these games and they're kind of like Dungeon Keeper above ground and with heroes...

The Majesty series is built around indirect control - you hire people, and they do their own thing, with incentives from you (i.e. cash).
However, the more relevant part is that they used a very basic 'faction' choice system for game one
Each player had access to the same basic hero guilds:
+ Warriors
+ Wizards
+ Rangers
+ Thieves
You then had a choice of one of three demihuman races - choosing one meant the other two became unavailble
+ Dwarves (defensive ballistae tower, slow, magic resistant and built stuff)
+ Elves (very good archers and kicked your economy into overdrive, while bringing some vice into play to waste your heroes time and drain some money out of the system)
+ Gnomes (easy to kill, insanely fast builders and very difficult to get rid of, to prevent players from using them to build a base then switching races)
You had a choice to two tier two temple factions:
Life/Order: (strong, defensive and suited for turtling)
+ Healers (only healer unit in game - would sometimes heal enemies. Planted herbs that rangers could collect for healing potions)
+ Monks
+ Paladins at the Warriors Guild
Death/Chaos: (heavy damage dealing, light defense, swarmed with summons and charmed creatures)
+ Cultists (charmed wild animals and beasts, planted poison plants for thieves)
+ Priestesses (of death - drained life, summoned/charmed undead, restored health in undead by draining life)
+ Warriors of Discord at the warriors guild (crazy people with light armour and massive damage)
Then a choice of tier three temple factions
Sun:
+ Solarii (agressive melee combatants, sought out enemy buildings)
Moon:
+ Adepts (defensive melee, patrolled your buildings, very very fleet of foot)
Alternatively you could bypass all the temples by picking the last faction:
+ Barbarians (massive damage, rage ability)
In Majesty 1 the rules were absolute - picking one 'faction' meant the other(s) wouldn't help you. In Majesty 2 the lines were blurred so that you could have multiple factions, but some didn't get along, so dwarves would stun elves and elves would entangle dwarves in vines, paladins would attack the undead minions of a priestess, and so on.
From an outsiders perspective I think you could combine the two approaches - each unit should belong to a faction and have an alignment tag - creatures of diametrically opposed alignments would react negatively to each other, by sulking, leaving, fighting or underhanded pranks (sorry, did I trip you up and stun you? bad me! Oh, was that your head? I thought it was a spittoon for my corrosive acid spit... etc).
From a keeper perspective it allows you to cross factional boundaries if you wish, and it also allows for each major 'faction' so to speak, to have a light and a dark side - so you could have mages and warlocks as the 'light' and 'dark' side of the human faction for instance, or a paladin and a death knight (although a death knight would also fit into the undead faction I suppose - there's nothing to stop a creature from being part of more than one faction).
Things get interesting if you consider creature attraction. Assuming the DK style of portals is continued:
* basic rooms will attract a range of creatures from different factions
* specialised rooms will attract a range of creatures from a specific faction and/or alignment
Regardless of your room choice, each player would also have an alignment score: the weighted average alignment of all of his/her creatures. At the start of the game, this would either be dictated by the level builder, or alignment of the initial builders (unless the ruling is that kobolds begin as magical workers who have no alignment and are therefore neutral).
The alignment factor becomes important because it would determine how likely a creature would be to come through a creature portal.
Assume alignment ranges from 1 to -1, 0 being neutral, 1 being good and -1 being evil.
At the start of the game a player is neutral (0) and builds (for example) a food place, a lair and a library.
Say for the sake of argument the Library attracts the following:
Wizards (neutral human - probability 0.25)
Warlock (dark human - probability 0.25)
Necromancer (dark human/mythological - probability 0.25)
Fairy (light mythological - probability 0.25)
With no other factors, each is as likely as any other creature to appear in the creature portal
However, if the fairy is the first one through, it would be logical to assume that some of the other creatures might not want to come and join her, or her 'keeper', so we'd give each creature an alignment coefficient - a representation of how much they care about the keeper's apparent alignment. This coefficient would then be multiplied by the keeper's alignment score and the result used to modify the probability of that creature arriving at the dungeon.
First let's say the wizard, as a self serving egoist only interested in knowledge for its own ends, doesn't care what alignment the keeper is, and he gets an alignment coefficient of 0.
The Warlock, being largely interested in dark magic, is nonetheless still interested in finding out new things - he might be able to subvert light magic after all - gets an alignment coefficient of -0.15
The Necromancer, being a true creature of darkness detests all things light and has an alignment coefficient of -0.8
The fairy, being light and bubbly has an alignment coefficient of 0.7
In this example, the keeper starts with an alignment factor of 0, and attracts a fairy - alignment 1
Assuming the keeper has four kobolds (neutral), the average alignment factor is (1+0+0+0+0)/5 = 0.2
This means the creatures now have the following probabilities of appearing:
Wizards probability 0.25 + (0*0.2) = 0.25
Warlock probability 0.25 + (-0.15*0.2) = 0.22
Necromancer probability 0.25 +(-0.8*0.2) = 0.09
Fairy probability 0.25+(0.7*0.2) = 0.39
Rescaling those out of 100% gives the final probabilities of
Wizard: 0.26
Warlock: 0.23
Necromancer: 0.09
Fairy: 0.41
(1% missing due to rounding errors)
Thus you can see that a wizard is slightly more likely to appear than a warlock once a fairy has come through, necromancers will typically steer well clear and a second fairy is likely to join the first. Assuming more fairies arrive, you'd pretty soon find a situation where the Necromancer would not show up at all.
If you wanted you could add other modifiers to represent things like the attractiveness of any given faction to the creature (constructs might not care, but undead would be drawn more to the necromancer than the fairy).
This also poses an interesting question regarding how rooms and such would affect creature attraction.
I would suggest giving each creature an immutable trigger threshold - unless this condition is met, the creature will never consider coming into your dungeon (i.e. the library in the above example). However, after that all sorts of bonuses/penalties could apply - room size can be used as a modifier (probably one all to itself), and this also opens up the idea that a room can have an alignment impact - a torture chamber for example could have an effect of -0.02 alignment modifier per tile, meaning that in this example a player building a ten tile torture chamber would cancel the alignment effect of his or her first fairy.
It might be interesting to have this effect other areas of the game as well - alignment and faction weightings might dictate what spells/rooms you can research, or even what 'skin' is applied to the rooms you build.
Personally I'd like to see a range of keeper placed objects outside of traps and doors - things like statues and other dungeon furnishings. As well as being decorative, they would have an effect of modifying the alignment score or faction score of a player to allow for a strategy shift as well as potentially soothing/pissing off existing creatures or bringing in new ones to conflict with.
Obviously there's then scope for keeper personalities to affect the starting faction and alignment scores, as well as dungeon dressing for people who build levels.
Okay, that turned out to be more detailed than I first expected.