You can dynamically adjust how one faction feels about another using the following functions.
From the lexicon page on Adjust Reputation:
One method of maximizing the versatility of the AdjustReputation function in conjunction with custom factions is to create an inaccesible area devoted to holding custom faction holders. Let's say your custom faction is titled "CLO" . You would give a creature the tag "CustomFactionHolderCLO", set "CLO" as the faction on the creature and place it in the custom faction holder bed. Keep it isolated from all other custom faction holders. Do not check the "plot" flag on your creature (or this won't work). You are using a creature rather than a placeable because AdjustReputation does not work with placeables. Now, for example, if you want the entire custom faction to turn hostile against your PC, you would script:
AdjustReputation(PC, GetObjectByTag("CustomFactionHolderCLO"), -100)
You can even create a custom faction holder for a standard faction so that you can easily use AdjustReputation with that standard faction.
Also, you may want to read this thread:
http://nwn2forums.bioware.com/forums/viewtopic.html?topic=569037&forum=1...
In it, they are talking about the need to set UsesPersonalReactions to TRUE in the campaign settings. This requires you to use a campaign folder if you want to do any serious work with factions.