You always need to add 2-3 years into any project, we never get anything here done on time or on budget
I'm close to the industry, so other than being careful what I say...it's rarely the people involved in delivering the project that cause these problems. Politicians are always in a rush - there's two significant points that they're interested in:
1. Announcing the project, ideally a ceremonial sod turning involving an oversized shovel, but oversized cheques or signing of a contract will suffice
2. Completion usually a ribbon cutting or the "look how normal I am using this piece of infrastructure" surrounded by camera crews..
The rush for the above mean that the actual scope of a project is never really finalised and defined, which means the cost to deliver it and the time take never settle ie. a moving target, so unsurprisingly everything only ever takes longer and costs more. It's not uncommon to start building it before the design is actually accepted.
There is a remedy, unfortunately it means slowing down. - taking the time to better define and better design these projects. In the *good old days* the design or such projects was a completely different project of its own, but these days the Build, own, operate & transfer model encourages the overlapping of much more of those elements than would have been done in decades past.
I'm a bit of a fan of historic engineering projects, and I often think the way things were done 200yrs ago, at the height of colonial engineering was truly a golden age, where every cent wasn't squeezed out and the intent was to build things that actually served their purpose. And they achieved it in an era without modern technology, communication etc. often designing , manufacturing and the building things continents apart.