I don't have a great answer for this, as I've often battled the same thing with various programs. I have found that if you drag the program over to the main monitor and re-size it by dragging the corner (not by maximizing), Windows will eventually decide to run it there.
I'm guessing that you might be doing what I do, which is keep a Windows Explorer window open on the secondary monitor for easy access to files. I guess Windows wants to think that if you're opening it from there then it should run from there.
Some of the multi-monitor programs let you assign a program to a particular monitor. I used to use MultiMonitor TaskBar
a while back and seem to recall it allowed you to do that.