From: zbot one on
+1 to the list. Ubuntu 9.10. Nvidia drivers. Dual monitors. R2007b.

I tried a couple of the suggested fixes (including the one posted above about set(0,...). Either hit or miss. The one that worked best is plotting on the same monitor where MATLAB's command window is running (I know it's a pain, but oh well).

2D figures are ok, only ran into trouble with 3D, so for a 3D figure 'f' then:

scrsz=get(0,'ScreenSize');
f = figure('Position',[0 scrsz(4)/2 500 500]);

No need for it to be docked! (in my case)

-zbot1