Use netsh.exe along with a few batch-files, and you're good to go! Not only is it free, it's included with Windows, and you don't need anything constantly running in the background. Just have a few configuration files set as different files, and run a different one to switch your network settings!
For example, if I wanted to change my "Local Area Connection" (the name shown in Network Connections), then I would copy and paste the following into Notepad, and save it as "something.bat":
netsh interface ip set address name="Local Area Connection" static 192.168.0.100 255.255.255.0 192.168.0.1 1
This would set my network connector named "Local Area Connection" to have a static IP of 192.168.0.100, with netmask 255.255.255.0, and a default gateway of 192.168.0.1.
For some advanced examples, check out this article, or the documentation from Windows XP Professional.
And yes, you can set the DNS via this tool as well:
netsh interface ip set dns "Local Area Connection" static 192.168.0.200