Unlike what the other posts say, you don't need a "SIM-Free" version of a windows mobile phone to develop for it. A SIM Free phone just means that the phone is not sim locked to a mobile operator.
What really matters is the security mobile enabled on the phone. All smartphone (non-touchscreen) devices have a restricted security model enabled. Some touchscreen devices have a restricted security model enabled, it's up to the mobile operator if they want to have there devices sold with a restricted security model enabled.
What does "restricted security model enabled" mean?
Basically it means that unsigned code can not be run on the device. So you need to sign your code with a certificate that is trusted on the device. Most Mobile Operators support the Mobile 2 Market certificate, some operators do not like Orange.
What does "restricted security model disabled" mean?
It means that unsigned code is normally prompted the first time it's run or installed then given full trust (privileged) rights if the user says so. This can be configured somewhat but registry settings.
There are two types of certificates you can be signed with:
Unprivileged: - Has access to all API's except Privileged API's. Also some DLL's and all Drivers need to be Privileged signed.
Privileged: - Has access to all API's.
There are lots of hops to getting privileged signed but it can be done.
Here is a FAQ on the WM5 Security Model. It's the same for WM6, WM6.1. WM7, when it comes out, has a completely new security model.
So for someone to develop on the WM platform, all they need is a device that has the security model disabled. This allows you to develop anything (including privileged API use). When it comes to selling WM applications, look into being signed by a Mobile 2 Market certificate, in which case you can be sold to devices that are locked down.