On linux you can set up a virtual interface using
ifconfig eth0:0 ....
There's these questions:
How do you create a virtual network interface on Windows?
virtual network interface for windows
But they talk about vpn or loopback. VPN wont work in my situation as I'm trying to talk to a machine I don't have control over that sits on a hardwired subnet, which is not the one I get via dhcp. Loopback doesn't work as it doesn't actually talk to the physical device.
There's a hack on WinXP that lets you override dhcp by hacking the registry, but it was disabled in Win7 for security reasons.