A favorite of mine: assume a sub-problem has a solution (even though it doesn't), and solve everything else assuming that solution holds.
I find that after I do that, once I have a solution for everything else, a less-general solution to the sub-problem is often sufficient to keep the global solution valid.
I wonder what a specific example of this approach would be.