It's probably easier to just change the hotkey for switching between windows within Gnome2 to something that doesn't involve "special keys", then uncheck the
Pass special keys directly to server checkbox. That way, you can alt-tab and it will ALWAYS (regardless of focus) work on the XP box, and your reassigned hotkey will switch between windows in the guest, as long as the VNC client has focus.
Check out the GNOME2 Users Guide for info on customizing shortcut keys.
Obviously you can't make it something like "a" because you will be typing that a lot, so maybe try a function key that isn't already used, or unassign a function key that is assigned to something you never use, and re-assign it to switching windows.
Shift is not considered a special key because obviously you can type "ABCD" within the guest, so you can use, say,
Shift+F1 as a possible key combination if plain old pressing a function key seems too dangerous to you. But by disabling
Pass special keys directly to server, I don't think you can use
Edit/Update: If you want to use an alternative task switching hotkey in Windows without changing the key bindings within the remote host, you can try, e.g. AutoHotkey, which is a program that will intercept other hotkeys and perform the same functionality as
Alt+Tab. See here for info. Important: Since you still want to use
Alt+Tab within the guest, you will need to leave
Pass special keys directly to server enabled in VNC, so that
Alt+Tab gets handled properly for the remote host. You will still be unable to literally use the
Alt+Tab key combination to task switch the host when the VNC window has focus. But you can bind another hotkey using AutoHotkey on the local machine, so that you can press something like
Shift+F5 to task switch on the host. Note that you will not be able to use your modifier keys (
Ctrl) for the AutoHotkey re-bind command either, because those keys will get trapped by VNC.
From the link:
Substitutes for Alt-Tab: Hotkeys can provide an alternate means of alt-tabbing. For example, the following two hotkeys allow you to alt-tab with your right hand:
RControl & RShift::AltTab ; Hold down right-control then press right-shift repeatedly to move forward.
RControl & Enter::ShiftAltTab ; Without even having to release right-control, press Enter to reverse direction.