Sorry, when I said Desktop Assignment, I meant Application Assignment !
Anyway, I've been doing a bit more investigation and I think that I can use it to solve my 2nd problem with the popups
If I use the Application Assignment feature and set the Application I'm interested in to "where started", then any popups are sent to the desktop I started the application instance in.
This works for applications that produce a new process each time you start it (e.g. putty, where a disconnected popup now gets moved to the desktop containing the corresponding putty session).
For things like firefox which only produce a single process (firefox.exe) regardless of how many browser windows you open, if you set firefox to "where started", then it keeps any firefox popups on the desktop that firefox started on. However, if you now try and start a new browser window on a different desktop, the new browser window gets moved to the desktop where you originally started firefox. So you'd be restricted to only having firefox browser windows on one desktop which in my case, isn't what I want. Luckily, I'm not too concerned where firefox popups occur, so will leave it with the default settings.
Now if I could just figure out issue 1