You could use the function JWindow from the JVMTools Mathematica add-on package. It returns the JFrame object and the JPanel object, and you can further process these objects, as explained on the page JVMTools window functions (scroll down to the section "Further Processing of the Java Objects"). For example:
creates a simple window with a Mathematica plot and then maximizes it to fullscreen.
Or you could also use the "comfort version" by using the Java fullscreen API, http://docs.oracle.com/javase/tutorial/extra/fullscreen/
And you can set the window coordinates any way you want, and if your second screen is an extension of your primary screen, you could simply launch it there by using appropriate coordinates that are off-screen for your primary display.
While we're at it, the JVMTools function JWindowSend allows you to dynamically update the contents of the window with new content generated by Mathematica (graphics, text, tables/Grids, formulae in TraditionalForm, etc.) This is useful for tasks that have Mathematica run as the data processor and graphics generator, and then use a periodically updated display on another screen, for example in financial trading applications or live weather updates.
This will always work on any hardware and o/s, because Java simply runs on any hardware and o/s, so you're avoiding the o/s-dependence discussed above in the comments. And JVMTools allows you to specify any JVM you want, the latest as of today is J7U45, and so you're also avoiding the bug in J6 mentioned above, and you liberate yourself from the fixed JVM that ships with standard Mathematica. Always use the latest Java for everything. In fact, J7U45 is the current security baseline.
Disclosure: JVMTools is a commercial add-on for M sold by Lauschke Consulting. I am the owner of Lauschke Consulting.