I would argue that current debate about how to define Web 2.0 is an exercise in futility. In the end Web 2.0 is a marketing construct that means everything and nothing at once.
Having said that, and at the risk of contributing to the blather, I posit another definition for the the industry to consider:
Cloud Computing is really SOA 2.0
To examine this, first we must understand the definition of Service Oriented Architecture (SOA). Before SOA, packaged and custom applications were islands. Interopperability wasn't a consideration. Applications (code) would be developed and never re-used and thus the same logic would be developed numerous times.
Along came SOA to the rescue. I would argue that SOA, in this context, is the means by which any application can call any other application, either inside or outside the organization's firewall, while respecting the security and governance rules of all parties.
IT departments spent much of the past decade Web Service enabling their enterprises and otherwise turning their companies into Service Oriented Enterprises.
This has set the stage for Cloud Computing. Without the 'anything can call anything from anywhere' capabilities that exist today, Cloud Computing would fail. (Note previous post on this blog that discusses the failure ofCloud Computing start-ups that were before their time.)
Enter Cloud Computing services such as Amazon's S3, EC2 and SimpleDB Web Services. Now the user need not know where there data is stored or where the hardware on which their processes are running is located. Entire applications can be (and are being) developed that stitch together disparate Cloud Computing services.
These services were not possible before the advance of Web Services and SOA concepts. So one could argue that Cloud Computing is the natural extension of SOA. Whereas SOA concentrates on secure and well governed interoperability, Cloud Computing leverages these capabilites to deliver the building blocks through which any application may be developed.