When it comes to tipping food delivery, I always do. The way I see it, the tip is what covers their car insurance, gas, wear & tear on their vehicle for driving your food from the store to your house and back...also to deal with all the crazies on the road or the bad conditions (assuming you ordered in during a rain storm or snow storm).
As other have said, most drivers maybe get minimum wages, often times their positions are like waitresses where they are paid less than minimum wage as it is expected they will make up the difference with the tips they receive.
It's tricky when something is delivered uncommonly late to know who or what is to blame. Was it the driver just being lazy, was it the store who didn't get the food ready in time (driver made good time but the delay was not the driver's fault), was there a traffic issue that delayed them (flat tire, accident on the road, expected or unexpected traffic jam, construction, ...), bad weather causing delays, etc - there are a lot of factors that could happen between point A and B that could cause an unexpected delay. So I tend to give the driver the benefit of the doubt. I might comment about the lateness to see what the driver's response was - sometimes you can get an idea (did they send them out with 10 deliveries over a 30 mile radius, did they mention an accident or construction..etc).