I wrote a console style application that uses the Win32 api to do pretty much the same thing although I've never shared it with anyone and I hope I have the source somewhere. My application essentially starts an application, gets the window handle of the application being launched and then moves it to the specified screen or specific x y coordinate location. I also had the capability to maximize the application window. I set up a batch script in the Windows startup folder so it would always launch whenever the machine rebooted. In my script I would have have my application run multiple times but with different parameters. So for example my application might be called upon to launch application XYZ and pass specific parameters to XYZ, then once XYZ started move it to the correct screen and maximize the window.
I designed this app for a control room of a factory which happened to control and monitor two different production lines. For monitoring they have two big screen TV's connected to a single desktop PC. This was an issue since it was pretty difficult for operators from different shifts to move windows around manually to the correct screen after an eventual reboot due to updates. Since I got tired of dealing with this issue I decided to come up with my own little application for my specific needs and has worked like a charm for the past few years on Windows 7.