Without IE, we wouldn't have had XMLHttpRequest, which means we wouldn't have had Gmail, which means we wouldn't have seen the bloom of "web 2.0" websites.
As for Java, Microsoft's C# is way ahead of Java in terms of language features. No idea how the runtime performance compares these days (both are very fast), but I'd rather have Microsoft Java than Oracle Java.
Microsoft's intent was always to break the competition, but they did it by offering features others wouldn't or couldn't. Evil Microsoft's Windows was the most feature-packed operating system out there because they threw every possible feature at the wall, kept what sticked front and center, and bothered to maintain what didn't stick. Microsoft Agents, the shitty Clippy things, were supported well into the Windows 7 era despite dying out the moment Bonzi Buddy was found out to be malicious. But Microsoft dared to break backwards compatibility with .NET 1 to fix the typing problem with generics that Java has to this very day; they just ended up supporting both, side by side.
It still did. Did you ever have to write specific code for ie6? <shudder>
The overuse of dependencies is a problem, sure, but it's completely unrelated to "over-unification". Every ecosystem with a built-in package manager suffers from this, be it Node.js, Python, or Rust, to name a few. In fact, it's not even the package manager, it's the ease in adding new dependencies. Go demonstrates that pretty well.
That's because those devs are incompetent, not because there are a ton of packages.