I don't think it is the best practice in the world, but if you are talking about the VPS provider I think you're talking about, then that $10 downgrade fee condition is clearly spelled out in advance on their website.
I know we charge a downgrade fee at providers that I run since it is actually quite of a task due to having to reduce a LVM volume+filesystem. It also makes some business sense since customer is downgrading, you will have resources open that need to be recouperated. Ideally it should be a % of the customers monthly fee since some pay different amounts per month.. gets idea...
Matt Ayres - togglebox.com
Linux and Windows Cloud Virtual Datacenters powered by Onapp / Xen
Instant Setup, Instant Scalability, Full Lifecycle Hosting Solutions www.togglebox.com
We don't charge a fee, but you would be billed the price of your plan until the next billing cycle. It is a bit of man powered work though - reducing the LVM size and such, so I don't think you can fauly them.
There is labor involved for sure, at least with Xen or other manually provisioned VPS.
Another reason is that no host is going to want a yo-yo customer. This is the customer that upgrades and downgrades constantly rather than just selecting the right plan for their largest usages and sticking with it.
I know it sounds insane, but there are people that will do that if it doesn't cost them anything to upgrade/downgrade other than the additional monthly fee for the upgrade. I refer to this type of fee as an "economic disincentive." It causes people pause and think about whether they really need to change. Customers hate this type of fee because it seems like a hidden gotcha, though it probably isn't intended that way.
I think it makes a lot of sense for Xen based VPS to charge a down grade fee. Remember for Xen there is no overselling on memory and diskspace. So when you downgrade, it basically creates "holes" in a system that sometimes cannot be easily filled, depending on the plan structure.
Take unixshell# for example, if I have a 192 and wanted to drop to 160 -- it would create a 32Mb hole on RAM that they basically cannot sell (the smallest plan has 64Mb RAM). The only way to capitalize this 32Mb RAM hole is by asking whether anyone on the same hardware node is willing to upgrade by exactly 32Mb, or else they have to shuffle accounts around, "defrag" a bit, to create a bigger hole that they can sell, which is a lot of work.
There is same amount of labour involved in upgrade. Except they can reject upgrade requests due to lack of free space on the hardware node.