dialog positions are stored in global string variables and currently there is no convenient way how reset them all. You’d have to find correct variables in macro sources and reset them by hand or write a simple macro. For goto line dialog the variable is named GotoLineDlgPos. If you want to find all these variables, search macro sources for DlgExecute() call and if the 5-th parameter contains “/RPOS=” part, position variable name follows.
However, there can be a better solution. These variables are stored per session so if you create one session for double and one for single monitor configuration, it should be sufficient (I haven’t tried it). You’d just have to switch to correct session when change computer configuration or use command line switch to start MEW with correct session.
BTW, I use double monitor configuration, too. I noticed a lot of problems with many apps which don’t expect this even if I don’t change monitor configuration. Even XP itself do crazy things sometimes. MEW, on the other hand, behaves quite correctly. It remembers last dialog pos and places dialogs there which in your case causes they’re on invisible screen. Yes, it could be more clever and try to detect this situation and reset dialog pos automatically. Or there could be a macro to do it manually (I wrote such one for BSC dialogs). But I haven’t seen such a smart app, yet.