In the same way that the Sainted Texan is allowed to ride in the best place in the pack all day long there is a similar "pecking order" in the run in to a sprint.
Cavendish is the boss when it comes to the sprints, and those on the next level below him (Hushovd, Freire, Farrar, Bennati, Boonen) are in competition to get on his wheel, but rarely seek to actively disrupt the Columbia train and force Cavendish to scrap for his place.
That's the way it works - the more someone wins, the easier the others make it for him (see Lance 99-05)
Everyone knows their place but then suddenly (for whatever reason) in the eyes of Cavendish, a no name from one of the weakest teams in the race suddenly disturbs the way things are supposed to be, and gets reprimanded with a couple of shoves for his troubles. He won't do it again, and the status quo continues.
If it was really such a big issue the other sprinters would be whining about it, but they are on Cavendish's side.
I know the Dutch don't like it (I live in Holland) but this is massively different to a first year road sprinter pulling down the GC leader on the last day of a tour and really hurting the guy.
This is pro cycling - each rider has a level of status - and that status gets you access and privileges in the peloton.