Seth Godin had a great post today, "Eleven Things Companies Can Learn from Airports", on some of the ways and reasons that airports are a horrible customer experience.
I would add number 12: the organizations involved in the airport all have a fundamentally different measure of performance than you do as a customer. They care solely about bandwidth, and you care about latency. Their goal is to get as many people through the airport at lowest cost as possible. If you can add another stage to the process but get more people through, that's fine.
Your goal is to get through the airport in as little time as possible. This is made worse by the huge variability. Will the main garage be full, and I'll get sent to a remote lot to wait for a bus? Will there be a line to check-in? At TSA? How far away will my gate be? How long will it take my baggage to come out?
The difference of attitude was right out in the open at SFO a number of years ago. There was a message for a few months on the rental car shuttles: "Due to airport construction, please return your car at least 2 hours prior to your flight." Translated this means: "We do not recognize your time as having any value, and this message serves to absolve us of any excessive delays you may encounter."