When Windows boots (XP SP3, Vista or 7), it immediately 'freeze locks' any SATA drive that it detects before actually booting the OS.
When a drive is 'frozen locked', no secuity features on the drive can be activated or changed. If you send the drive a 'secure erase' command, the drive will ignore it. This is a security feature in Windows - It's designed so that a virus, worm or trojan cannot 'lock' the drive with a password.
The drive will automatically 'unfreeze' when the it is powered off - so if you *power off* the comp, and boot with a boot CD or USB stick, it should work.
However, there is another problem in that some PC BIOSs do the same thing for the same reason (so that a trojan masquerading as a boot CD can't hold drives to ransom). So, as soon as the system boots, the drives are 'frozen' and can't be secure erased. There *may* be an option in the BIOS to switch this function off (something like 'write protect hard drive' or 'virus protection').
If you can't disable 'freeze locking' in the BIOS, then you have 2 options:
1. Try on a different computer with a different BIOS (try the oldest motherboard your have with SATA ports), and see if that one doesn't have automatic 'freeze locking'.
2. Hot-plug the drive into a SATA port after the comp has fully booted into DOS or linux. An eSATA port would be preferred as these are designed for hotswapping. Although, if you are careful, you can hot-swap onto normal SATA ports. Just take static-discharge precautions and make triple-sure that you are inserting the connector absolutely straight and the correct way round. I've done this loads, and had no problems. I've even plugged in hard drives and DVD/BD drives into internal SATA ports while Vista is running - they just get detected and given a drive letter as if they were USB drives.