The Question Requires Context
To answer the question, we'd need to know something about WHY the incompatibilities exist. This isn't a NEW operating system; rather it's an upgrade. So, a priori, I should have every expectation that my old software would continue to work.
On the other hand, one assumes that the old software was programmed within whatever guidelines Microsoft provided. So if that old software was using unapproved approaches or undocumented features, maybe it's not Microsoft's fault.
I offer two conflicting scenarios to illustrate the point:
One: Microsoft changed the way the OS handled certain requests in a way that they knew, or should have known, would cause existing programs to blow up. Knowing this, they went ahead and released Vista. This means, by derivation, that they were throwing us users under the bus and planning to blame the software programs for what was really Microsoft's fault. That would be baaaad.
Two: Certain software vendors, knowing that Vista was coming out, and knowing that some of their kludge programming could run into problems, decided not to test it or update their drivers. Maybe they were simply negligent; more likely they hoped that Vista buyers would be willing to buy an "upgrade" when they ran into problems. I'm sure Microsoft had a vendor pipeline to help software companies work out these incompatibilities, but let's imagine the software vendors didn't avail themselves of it. In that case, I blame the software company, not Microsoft.
I've been involved in development, and it's simply not possible to hold one side responsible in these situations. Presumably, Microsoft tried hard to make Vista backward compatible. But presumably the software companies didn't want to have their products made obsolete by Vista. So clearly somebody dropped the ball; we just don't know who.