Part of the problem, especially when it comes construction and defense, is awarding contracts to the lowest bidder with effectively no punishment for exceeding the initial estimate. This pretty much guarantees underestimation, both for statistical and behavioural reasons.