There are quite a few stories out there over this past week saying that Google ought to be ashamed of themselves for how few devices currently run with their most recent version of Android, the tasty treat entitled Ice Cream Sandwich - but hear me here and now: Google is doing exactly what they intended to do in the first place. When Android was first introduced, Google intended to create their own device, releasing it simultaneously on each of the major mobile carriers and making sure their vision was available exactly as they intended on at least one device - this device survived in what's now called the Nexus line of phones, and although they aren't released in that same perfect way, they are essentially always what Google intends as a perfect Android experience. As for Ice Cream Sandwich - you shouldn't be so bold as to demand it on your year-old device.
UPDATE: Google has made a bold move to make this update waiting situation a thing of the past.
The Update Alliance is a sham, there should never have been an announcement by Google or anyone else that they'd be pushing for manufacturers and carriers to update to the newest version of Android because while it's not impossible, it's foolish to think of it as a reality.
There's this mindset out there right this moment in the developer and early-adopter community that says the newest operating system version is the one you should ideally have on your mobile device.
This is absurd.
Apple has a product called the iPhone, and with this single product comes the promise that you'll always have the most recent iOS experience.
Google has a product called the Nexus (Nexus One, Nexus S, Galaxy Nexus) which, to a point, also always promises to have the most recent Android experience.
Google's Android operating system is open source for anyone on earth to use with any device they choose, and everyone from high-end manufacturers to undeniably terrible budget-tablet-making OEMs have taken advantage of this fact.
The myth that the newest operating system should be expected to fit and instantly installed in any legacy device running an older version of it is just as absurd as thinking a brand new car engine should be able to fit inside any car previously made by the same factory. When you purchase a device, it should be clearly stated that the user interface you purchased it with will be all that's guaranteed until it is old and dead.
The only other solution is virtualization, this being a subject for another day.