I'm not so sure about that...
This morning the difficulty was up around 13k (the same as yesterday), yet almost every single block was being accepted ok.
Yesterday with the same difficulty almost every single block (>75%) was being rejected.
That implies it is not related to hashpower and people beating you to the punch.
Add to that the fact that blocks only seem to get rejected on mass when they are processing transactions and our wallet balances are moving.
I'm not 100% convinced it is as simple as hash power \ latency etc.
Plus, as soon as someone mines a block all miners should be notified and thier mining clients should swap to the new top block.
Occasionally you'll find a block between someone else submitting one and getting the notification that a block has been found which will cause your block to be rejected, but that shouldn't happen 50 times in a row.
No, I think something else has been going on...
Maybe the notification that someone else has mined a block hasn't been working?