One other way to deter zerging is to tie the rewards to single (winning) guild only, and not shareable in any way.
I will add an example for siege zerging below (overflow guilds), but other methods could be devised to deter zerging in other situations, in some similar way.
For example guild that wins siege does not get gold (or similar rewards that result in directly earning you gold) as reward (gold is simply shared to other guilds that helped with the siege). Siege should be rewarded with something that's bound to character (those characters who were in the guild at the time siege was won*).
In this way, even if 2000 people help, only 200 people that were in the winning guild will only actually be rewarded, and rest 1800 have absolutely nothing from this. Because ALL rewards that winning the siege involve, were bound to those 200 characters somehow.
What kind of rewards that should be is discussable, I can give some examples.
-
only those 200 characters get an ability to set their houses in special locations (that are activated and available only to those that were in the guild at the time siege was won*)
-
only those 200 characters get special tax free status (every other player auto pays taxes, by game mechanics auto taking extra cash from him, and only those 200 players are ignored by mechanics)
-
only those 200 players get special treatmant by NPCs in that zone
-
only those 200 players get special options available to them in that zone
-
only those 200 players have an ability to get political positions in this zone
Now those are just an examples, but the point is that only the people that were the part of a winning guild at the time the siege was won (both part of the guild at the time siege is won AND and 1 month part of the guild before that), get those rewards, that are tied to their characters.
*I added this one month clause so guilds wouldn't just invite 2000 players right before the siege, and kick them after to avoid taxes.