It turns out, we're not choosing between a partial and a complete solution. It's actually a choice between a partial solution and no solution at all. And to be even more precise, we're choosing between a series of partial solutions and no solution.
Here's how it works. A developer can't give you everything you need right now. But they might be able to quickly deliver a system that does SOME of what you need... followed by an additional increment / block / spiral / release that does MORE of what you need... followed by another increment, and so on.
So let's keep in mind that the partial, 70% solution isn't the whole story. It's just the first increment. As a dedicated imperfectionist, I'm pretty cool with the 70% solution to start with. And as a guy-in-a-hurry, that's at least partly because the 70% solution is generally available MUCH faster than the 100% solution. It's cheaper too. But if you do it right, it's also not the end of the story.