You can avoid this by having the compute intensive part of the application (your backup it sounds like) run the "main loop" (or "event loop") of your GUI library (Wx, Tk, native win32, Gtk, whatever). If you do this, Explorer (the MS "window manager" can see the app as still alive. Unfortunately, that may require re-designing the backup code so it can call the event handler/main loop. I had to do this redesign when converting a command-line app to a GUI app.
tachyon's ideas are good and any widget you invoke that prints a progress bar or whatever will (should?) call the event loop at the appropriate intervals. How you do it really depends on your toolkit.
HTH, --traveler