I've been thinking about this some more. It's probably worth trying the other ideas suggested, but I suspect you won't be able to make it work with the built-in window-only screenshot. I'm thinking your best bet may be a 3rd party tool like SnapzPro.
Read on (if you dare
) for a technical explanation of my reasoning. Some of this I know with certainty, some I am speculating about based on other available information on the architecture of Mac OS X. Be warned, though, it's technical.
Graphics cards have always allowed direct access to the screen buffer, stored in video RAM (VRAM) on the card. The screen buffer represents what is currently being displayed on the screen. Long ago (classic Mac OS, Windows 3.1), programs could write directly to VRAM to change the content of the screen. That was important when system RAM was limited. Programs could also read VRAM to get a copy of the entire screen image. I suspect that Mac OS X uses this method when you press Cmd-Shift-3. It doesn't matter how the data came onto the screen, just that it is there.
Now, the OS X window server (the program responsible for maintaining the contents of the screen) keeps a copy of graphics drawn to the screen. It has since 10.0. (Take a look in Activity Monitor and you'll see a process called WindowServer). In fact, normal programs draw their window contents directly to that off-screen buffer (it's in main system RAM). When they are done drawing, the window server takes the image for that window and composites it with every other window on the system to create the total screen picture. By "normal" programs I mean basically anything that doesn't use OpenGL 3D graphics. I'll get to the reason behind that in a moment. There are big gains from a processing perspective and for graphical continuity to this approach. The down side is it uses more system RAM. I think Windows Vista does this now.
Given that, when you want to take a picture of just one window (Cmd-Shift-4), my guess is OS X just takes that separate buffer and writes it to a file. It doesn't have to go all the way out to the video card to get it. To see that work, try using Cmd-Shift-4 to get a screenshot of some window that is partially obscured by another window. You'll get the entire window content, even the hidden parts.
Now for how OpenGL fits into this. If I remember correctly, Apple made a big deal back when 10.4 came out about hardware-accelerated graphics. The video card requirements also went up for 10.4. I suspect that in 10.4, the window-specific "offscreen" buffers are were moved from system RAM to the graphics card's VRAM, at least in part. It's my understanding that modern graphics cards have the ability to do all the 2D raster graphics work, in addition to the 3D work, so why not let the card do it? In either case, if you store the window content (as textures?) on the card, you can have the card do all the compositing work to get the screen drawn. Much faster that way. So, for 3D game content (like Halo) I think the card just renders into the texture for that window. That texture then gets composited normally when the screen is assembled. So, when you do Cmd-Shift-4 on 10.4, it has to go out to the VRAM to get the window image, but it has the 3D content.
My guess is that, because this was touted as a big feature of 10.4, that 10.3 took a different approach. My guess is that in 10.3, the Halo 3D content is kept entirely on the graphics card. When the screen is updated, the window server composites all the stuff around it, and tells the graphics card where to render the 3D scene when it's assembled. The card just does the OpenGL work and spits it out onto the screen. The only way to get the full window image (3D content and all) into main memory to composite with everything else would be to have the card render to VRAM, copy from VRAM to main RAM, composite, then copy back to VRAM. That would be very expensive when you're trying to do something like Halo, and could kill your frame rate.
The consequence of this approach is that, on 10.3, you get the empty window frame when you do Cmd-Shift-4. Because the 3D content isn't part of the main-system-memory copy. On 10.4, it goes out to the graphics card and gets the full image.
If you made it to the end...
. Hopefully my rambling made sense. I was just a tad bored today
.
The above may be a consequence of your specific graphics card, but I kind of doubt it. Different cards do have different capabilities, but I'm thinking OS X architecture here. You could try replacing the card, but I would consider it a long shot.
As for the weird-shaped PDF containing both screens, that's almost certainly a design decision on Apple's part back in 10.3. For whatever reason they decided to change it in 10.4 to create separate pictures for each screen.
At this point, I think your best bet would be a 3rd party tool. Otherwise look into automation like AppleScripting.
Whew!