Alrighty - we believe we have finally tracked down and closed this bug.
This was the weirdest, limtied circumstances, bug we've ever run into tbh.
Essentially, it only effected players who:
1. Sent caravans out to gather from a square that already had other caravans on it, where
2. The square had less than 1 caravan's worth of resources left on it, or the arriving player had sent enough caravans to gather all the remaining resources on the square with capacity to spare, and
3. The other player's caravans had harvested *more* than half the remaining amount left on the square prior to the arrival of the new player, and
4. The arriving player pushed the previous player off the square, or alternatively another newly arriving player pushed the (new) existing player off the square after the zero-point where the square should have run out of resources after subtracting the sign-opposite of what resources were actually left on the square when the first player was pushed off.
What would essentially happen is that the system would not take into account what the "pushed off the square player" had already harvested when calculating how long the newly arrived player's caravans should remain. So when it came time to send the previous player's caravans home, the system would say "You harvested (eg) +25 resources which were there, but then you stayed on the square harvesting (eg) minus 50 resources that didn't exist, so let's send your caravans home now with all their wonderful resources oh wai..."
Which is, of course, obvious when you think about it.

Anyway, we think it's resolved.
Edited by GM Stormcrow - 23 Mar 2010 at 17:49