I use autohotkey (http://ahkscript.org). It can launch applications and resize and reposition windows.
; Autohotkey script
; This script binds <Windows+j> to function putty_open, which
; opens two ssh windows and moves them to the hardcoded
; coordinates below.
;
; "TASKS1" and "STUFF" are both putty profile names and
; window titles.
#j:: putty_open()
putty_open()
{
run c:\bin\putty -load TASKS1
run c:\bin\putty -load STUFF
WinMove TASKS1,,0,0
WinMove STUFF,,0,612
WinActivate TASKS1
WinActivate STUFF
}I'd then use something like devilspie, kpie, or similar, to move the windows to known-good positions/virtual-screens/etc.