Is there anything that actually comes close to doing this and doesn't fall into the problem of "...turns into an exercise of shoehorning your data into a system that just can't accommodate it."? Sadly, from what I have seen Salesforce is probably still the best solution beyond building your own apps.
Yeah, Salesforce might just be the best of these types of systems. But even then, it is the best-dressed clown at the circus. Unless you have a really simple business model, you should probably just build a custom app.