A vexed question indeed. I've found that keeping a big water spray thing, the kind that you use for ironing, to hand and giving it a blast every time seems to be working. Another ploy is to have a big tin of coins and shake it once, vigorously every time they nip you. The downside is if you don't have these cumbersome things to hand, and I don't always, and get it immediately you've been violated (or better still just before) the stupid thing doesn't seem to make the connection and just thinks it's being sprayed/rattled for no particular reason.
Seth's Blog-the original internet marketing guru (he'd put it in a much less hackneyed way than that)