Here's my take:
1) Use the camera tracker approach, with three IR LEDs per gun. Why three? That way it can track it in true 3D space, unlike the dual LED eRealGames which forces you to recalibrate every time you move toward/away from the monitor. They can be placed anywhere, so long as they are all visible to the camera and are not in a straght line.
To differentiate between LEDs, there are two ways. You can use color LEDs, but this can be annoying, and colored objects can cause interference.
The alternative is flashing at different rates. My Logitech Quickcam allows me to set the refresh rate at 60Hz for lower resolutions, but I have no idea if it actually works this fast. To control the flashing, use the serial port. Set it to pulse once per camera refresh, where a decade counter cycles the LEDs so only one is on per camera frame. At 60Hz, this gives both guns a full 10 samples per second. You might run into problems if you move the gun too fast, but hopefully this can be corrected in software. A filter should be used on the camera to remove anything but IR light.
I can help with hardware, especially circuitry.
Anyone who decides to help with software: Please, please use portable code. I don't want to be stuck with windows. Solid C is probably best for something like this. No VB!!
2) This might not go over well, but what about using the case from real guns? We could try to order the two halves directly from the factory, without any deadly firing mechanisms installed. You can't beat the realism. Otherwise, we should contact the manufacturer of the Happ guns and order some plastic shells.