Another part of the good old days was that since everything was new the users were early adopters by definition. They weren't as strongly committed to the specifics of a given piece of software.
Moving from Windows 3.1 to Windows 95 was at least as much UI change as going from XP straight to 8, skipping Vista and 7. If we made that exact same transition after people spent the better part of a decade getting familiar with 3.1, we would have the same "it was good enough" arguments.
The truth, though, 3.1 wasn't good enough; it was built with hard coded assumptions about the limits of computer hardware, limits that were rapidly changing at the time. 95/98(se)/ME weren't good enough; they were attempts to extend the legacy DOS architecture well beyond it's original purpose. Stability on that line went to hell by the time ME came about. Windows 2000 (a.k.a. NT 5.0) was meant for business users and extended to add consumer friendly features with XP (a.k.a. NT 5.1). Those weren't good enough either. How many people can close their eyes and easily picture a Win XP BSOD? If you're worried about getting work done, I hope you remember to save frequently. Vista wasn't good enough, it was a fresh refactor to the NT 6.x kernel and showed signs of being rushed out the door at the end.
Windows 7 and its counterpart Server 2008R2 (both a.k.a NT 6.1) were good enough at the time but two big things drove the push to Win 8/ Server 2012. On the consumer side, MS is looking at a booming tablet market full of consumers that just want a device to consume media, not create it; Windows 7 is not a suitable tablet OS and developing a wholly separate OS for mobile/tablet would be a massive waste of resources. On the server side there is a big push toward virtualization, cloud computing or whatever you want to call it. The consumer side brought us the Metro UI which has caused nearly all the backlash over Win 8 while the server side brought us things like a type-1 hypervisor included in the base OS and a kernel that can handle changes to the amount of physical memory visible on the fly.
Windows 8/ Server 2012 aren't cash grabs resulting from MS assuming people will flock to buy anything new they release, they exist as solutions to use cases that weren't considered in Win 7/ 2008R2. Apple would be the company that makes that assumption with their "One more thing..." announcements and OS service packs bearing price tags.
Throughout the history of Windows the biggest changes have been under the hood. How many of the people above that can picture an XP BSOD know, first hand, that the Win 8 BSOD was completely redesigned? I've seen it only once during an experiment in overclocking. Now consider that XP was much more stable than any of the 9x/ME versions before it. Every step of the way were people that cried "but it was good enough!" but I, personally, would rather *get work done* on Win 8 where my system uptime is mostly determined by the local power company. I can adjust myself to a new UI after a week or two of exploration; a price I'm happily paying to avoid losing whatever I'm working on to some random IRQ Not Less Than or Equal bug.
The UI has only gone through two big changes, 3.1 > 95 and 7 > 8 (I'm ignoring 1.0 and 2.0 because they never gained mass popularity). Over the next several iterations we'll see the same tweaking that went into the 95 through 7 UI, i.e. change the colors, add curves, rearrange the menu, tone down the colors, make it look like glass, bigger icons and ditch the curves. We've already seen the first iteration with 8.1 restoring the start icon and allowing multiple metro apps on different monitors. Then, when everyone thinks that Metro is "good enough" MS will create something completely different to respond to a form factor or use case that has not been imagined or invented yet.
And the masses will whine and complain again. So goes the circle of tech.