The problems with Vista are multi threaded and the blame lies on all sides. For one Microsoft is so huge, that they can't execute proper project management and some project leads and employees will never interact with other teams on the same project. Other times, they won't even speak at all. An example would be those who code Office versus those who code the actual OS. So, there are going to be problems there with just their products working together in house out of the box. However, MS is good at patching those problems.
I think what the real beef is and why it is comparable to ME is that it is the end of a kernel, as Windows ME was the last of the 9x kernel OSes that MS put out. Now with 2000/XP/Vista we are seeing the NT kernel, which of course is very old in the same sense, since NT work station has been out since the mid to late 90s.
You can only patch pot holes so much before you need to dig it up and lay down brand new pavement. The slow migration of such newer ideas and technology while keeping the backward compatibility has caused both bloats and stability issues.
The problem with developers is that MS is now finally trying to make their OS smarter by design. Before in previous versions of Windows developers were allowed direct access to the kernel via kernel hooks. Anti virus developer relied heavily on these types of hooks used to access the windows kernels, as well as drivers and everything else. This is because in Windows everyone ran as a 'root user' and no authentication was ever required to install or run anything. Well, that is also a huge security hole, and of course was exploited by every hacker and virus writer out there, and that is why Windows has more zero day exploits than almost any OS out there.
Then you have the developers that have become accustomed to being lazy or sloppy. The Vista dev kit was out at least a full year if not more before Vista was released, and most of the Vista crashes and incompatibilities are related to drivers and anti virus software (and similar things). Symantec actually complained heavily to MS about not getting the direct kernel access and they would have to recode all their applications. So, what happens when a software company who is just as big (if not bigger) than you telling you shouldn't do something because you will piss off all your customers when our enterprise solutions no longer work, which brings me to my next point.
Vista has been a HUGE failure in the enterprise market and no one is upgrading to Vista in the business world at all. There is no benefit, in fact it costs more to upgrade your site license and replace all the hardware it would take to run vista. Since Vista feature limits things important to enterprise deployments like, the ability to connect to a domain level network unless you buy the Ultimate or the Business edition means it drives up cost as well. So, why would you be inclined to spend all that money to upgrade to know that you will face issues and some things won't work or be supported and never once gain anything out of it?
The funny thing is I said this over 2 years ago when Vista first came out that it was going to be another or at least compared to Windows ME. Windows ME was a buggy updated version of Win98se with a prettier interface, just like Vista is to XP.
Vista also promised so much in the beginning and then feature dropped tons of things that are actually really cool technologies and it was, at least for me, a huge disappointment. I was really looking forward to see how EFI hardware changed the face of building your own PC, but we won't see that till Windows 7, and even then it is not guaranteed, because it is heavily rumored it is getting pushed back again.
You can't please everyone and MS should just go back to a straight Unix-like POSIX system requiring authentication to access the kernel through the shell and keeping all other kernel access from the GUI restricted, unless logged in as root user. Then force developers to actually, you know, develop things at a decent level of standards. Like, why in the hell would a driver need to access the kernel as root?
While, I am not a developer and programming is something that is foreign to me, I do understand the workings of an OS. I would say that it is going to take effort on both MS and the third party developer's side to make it work.