It's not always the fault of the passenger. Case in point :
A couple of weeks ago I was flying to Heathrow from Frankfurt. Flight departed at 1330, checkin by 1230.
I arrived shortly after 1000 as I wanted to get a bite to eat and do some work, so I joined the rather long Lufthansa queue at 1005. I didn't get checked in until 1250. The checkin for my flight actually closed at 1300 so I did make it.
For some strange reason, that normally full flight was almost empty.