About the car-breakdown thing, the places I've worked have had a couple of ways of dealing with it:
1) In most cases, people are paid a fixed salary and it's a "swings and roundabouts" situation. On one day I might need a member of my team to work a couple of hours extra, for which they won't get paid extra. On the next, they may be a couple of hours late because their car broke down but they'll get paid as normal. This strikes me as a reasonable and grown-up approach, and it's incumbent upon both sides not to take the piss. In my experience it works well.
2) Much more rarely, if someone does a couple of hours overtime they'll get paid for the extra two hours. If they're two hours late the next day because their car breaks down, they won't get paid for the two hours. I suppose it's fair, but it strikes me as a bit too nickle-and-dime (not to mention the bureaucracy).
I've never worked for a company which pays by the hour for overtime but forgives late attendance, or indeed vice versa. I suppose the former is the optimal scenario for the employee and the latter is the worst, with the two examples I've experienced being somewhere in the middle.
I have no idea how it works on the railway. If you do an extra couple of hours on your shift, do you get paid for it? I'd certainly hope so, if you're docked in the car breakdown scenario.