I feel like that's the same underlying issue: The requirements are not understood upfront.
If a customer cannot give you any specific information, you cannot cut any corners. You're pretty much forced to build a general framework, so that as the requirements become clearer, you're still equipped to handle them.
I guess, the alternative is building a prototype, which you're allowed to throw away afterwards. I've never been able to do that, because our management does not understand that concept.