I can think of several reasons why people wait.
1) It's worth the fuss of waiting for the rest of the friendship. Friend is chronically late, but also great fun, generous, and otherwise a good support, so you put up with their quirk.
2) The chronically late person is someone you can't/don't want to offend, or don't want to deal with the apocalypse that will result from standing up to them. (relatives who will throw a public temper tantrum, sulk and give you the silent treatment for starting without them, for example).
3) You get something in return - late friend tends to pay, or has the car, or the access to cheap tickets.
4) You're annoyed, but have been socialized to be nice and not make a fuss. Standing up to chronic lateness frequently results in a fuss, often a public one, and it can be hard to make that jump, and to risk the friendship with someone oversensitive.
There's also a more complex psychological reaction - there's a tendency for people to pour more resources into something that's already absorbed a lot already, rather than to cut their losses and run. So after you've waited for 20 minutes, you figure that you might as well wait until they show up, or the time you've already put into it is wasted.
And finally, I think cell phones have made things worse. Without cellphones, if you were waiting at a venue for someone, and they didn't show up, you'd assume that they weren't coming, or got the place/time wrong, and leave after a reasonable wait. You'd also have to make sure to factor in extra time for traffic/parking, or risk getting left behind.
With cellphones, you get the call at the meeting time saying "We're just leaving the house - be there in 15 minutes!" Then 20 minutes later you get the call "Traffic is really bad - be there in 15 minutes", and 20 minutes later "Trying to find parking - be there soon" and before you know it, you've been waiting an hour, when without the cell calls, you'd have left 15 minutes after the stated meeting time.