DS has always been a cautious child. He stood back from the other children until he turned 3, but now he is right amongst them playing. He isn't shy and will happily talk (and talk and talk) to anyone. He has never in his life hit/kicked/pushed another child (little sister excepted of course).

But if another child is rough with him he will just meekly accept it and move away. For example we went to an evening function at kindy and he was happily running around with the other kids. Then one of the boys grabed DS's arms and pulled them back and forward until DS fell to the ground. The other kid then ran off and DS stayed sitting. When I went over to see if he was alright he just said that he didn't want to play with the other kids any more.
So later we had a little chat about it and I told him to remember to use his words and tell the other child if he doesn't like what they are doing. We practiced saying firmly "stop it! I don't like that!".
A few days later he was on a bouncy castle and he told me that a girl was being mean to him. I reminded him to use his words and sent him back, but went to spy. I saw him sitting in a corner shielding his head with his hands saying "no, no" in a meek little voice while the girl was deliberately bouncing onto him over and over. I sent the girl on her way, but I can't be there to save him every time.

Does anyone know of any way that I can teach him to stop accepting it? I don't want him to be picked on but atm he is an easy target.