Hofstadter's Law says it always takes longer than you expect, even when you take into account Hofstadter's Law.
Too many unknown unknowns. If the projects were broken down into smaller chunks, the incremental costs would be better understood as the project progressed.