Well, there's nothing as permanent as a temporary solution...
Heard it so many times.
Experienced developers in a domain can sometimes anticipate the issues, but experience only comes from failing.
The real answer is allowing some budget to fix things and then fixing them as you go along.