Phazer has this 100% correct, and a lot of people don't understand what a contract entitles you to.
A good example of when this has happened before with O2 was the way that they dealt with 0844 calls. Until about 4 years ago, O2 tariffs included calls to 0844 numbers as part of their inclusive minutes allowance, and people used this to make calls to International numbers via dial through services, effectively meaning that they could call internationally as part of their bundle. O2 understandably decided that this was bad for them, as it reduced their international traffic, and also increased their ACPU for these customers.
What O2 did was to change the T&Cs for all new customers and customers upgrading to a new phone to take the 0844 calls out of the bundles. Customers on existing contracts were unaffected. Then around 18 months later they removed the 0844 calls from all bundles, regardless of the age of the contract. O2 had to supply customers with 30 days written notice, and as the change was deemed material, they also had to give the customers the option of ending the contract without penalty.
Sound familiar? In 18 months time or so, when all the 3GS customers are outside of their minimum contract terms and they have paid off the subsidies on their handsets, O2 will remove the unlimted data option on all contracts, and we will have the option of ending our contract without penalty or carrying on as normal.
No one is entitled to unlimited data forever just because they signed up for a contract that included it, they are just entitled to be given fair notice and have the chance to walk away without penalty if the terms of that contract changes.