On LifeHacker.com there's a tutorial on how you can use a simple PHP script running on a remote server to tell Google Voice which is the best phone to forward your calls to. The method requires the use of an Android phone, though.
I figure the only way Google Voice could be improved is if it magically knew where I am and made my phones ring accordingly'"so that's exactly what I made it do. You can, too, with an Android phone, the Locale app, and a web server. The overall goal: have Google Voice know which phones to ring, based on your current location or situation.
You'll need a Google Voice account (obviously), some software for your phone and a remote web server running PHP 5 (with cURL and json functionality). You can then use the PHP script by passing parameters as to which phones to turn off and on and use the Locale tool to create the "situations" where it needs to make the switch.