One thing with people I know who are often late, is that they don't have a good sense of time. They don't understand how long it will take to get somewhere, or how long it will take them to get ready, and they often want to do "one last thing" before they leave the house (which could really wait) or make "one quick stop" on the way somewhere.
I don't have a good sense of time myself, but I know this and try to compensate for it. I actually do time myself doing things, so I know how long it takes me, personally, to get ready or to get from A to B. And I usually arrange to show up ridiculously early anyway--not to people's houses, because that's just as annoying, but for flights or classes or something like that.
To me, being bad with time is like being bad with directions, or having a restricted diet, or being on a tight budget. You have to realize this about yourself, and then you have to take steps to prevent it from becoming other people's problem (as much as possible). Although I've certainly seen threads about people who make their budget or diet other people's problem, there seems to be something special about the chronically late people, who tend to not realize what the root of the problem is (though I'm sure it's only a subset that are bad with time).