In this shot, I used the popup flash to fill in the shadows.
The flash did lift the shadows but there are basically only 2 intensities of light on the subject's face - lit and unlit. I think this looks ok but looks "insufficiently 3d" or kind of flat because there are only 2 main intensities of light - the filled-in shadow and the highlight.
Another approach is cross-lighting. It looks very cool, like a still from a hollywood action movie but is sometimes too unnatural.
A third approach I'm learning about is to let the fill light come from around the same direction as the key, except closer to the camera axis. What this does is to fill only a part of the subject, leaving a portion still in full shadow.
Here's how I think it works (click on the diagram to enlarge).
Disclaimer: I'm not an engineer or physicist. In the diagrams above, assume that the view is a bird's eye view with the camera on the bottom of each diagram. In the top diagram, the red circle is lit by a small light source. The circle is lit basically in two ways: either it's lit (parts exposed to the light) or it's not.
The green circle shows the effect of a large light source. I simplified the large light source by representing it as 3 points. The circle has parts that are exposed to all 3 points, some that are exposed to only 2 points, some that are exposed to only 1 point, and some that are exposed to none of the points. The parts exposed to all 3 points are brighter than those exposed to only 1 point. Thus instead of having almost binary lighting like with a small light source, there is a smooth gradient (don't forget - there are an infinite number of points between the 3 points).
The blue circle is what I'm hypothesizing - that to some degree, it's possible to simulate a larger light source with 2 smaller light sources, where 1 of the light sources is closer to the axis of the camera. Like a larger light source, there are parts lit by 2 lights, parts lit by 1, and parts that are unlit. Unlike a larger light source, however, there is nothing between the two points of light, so the gradient won't be as smooth. I think it would look "more 3d" though, than just using a simple omnidirectional fill.
Real world sample: In the following shot, light from the window acted as the rim light. Instead of using on-axis fill to lift all shadows in the subject's face, or cross-lighting from the angle opposite the window, I positioned the flash from the same side as the window (as far as my arms could reach :) ). This is somewhat like having point A and B from the diagrams above. As a result, there are at least three distinct lighting intensities on the subject's face: rim light from the window, light from the flash which is functioning as the key light, and an unlit shadow area. (There's actually another area from the reflection of the music sheet but that's a separate point.) The effect IMO is to make the subject appear more 3d than binary lighting as used in the previous shot. In addition, even though the flash is hard light (I didn't use an umbrella or diffuser or anything - look at the shadow cast on the music sheet), it doesn't seem very hard on the subject's face (but I'm not yet sure if that's just because of the roundness of our son's face...).