Professional underwater housings are extremely expensive and dedicated to a particular camera model, so I've been playing with cheaper alternatives at the local pool.
First I tried a soft case for my DSLR, but found it very clumsy, and since scatter in the water wasted the quality from a big camera I moved over to a hard case for my compact Canon S90, which gives plenty of quality at ISO 80, and when set to manual operation has a shutter lag of around 0.5s, which is annoying but useable.
I then tested different waterproofing techniques for external flashguns, and after a couple of expensive mistakes settled on Tupperware-style containers with a plastic bag inside to contain small leaks.
I expected to then be able to use a normal optical slave to trigger the external flash from the S90, but due to physics that I don't yet understand, these don't work through water, so the final solution was to use optical fibres designed for home audio systems. Neodymium magnets were then attached to the ends of the cables which could couple with steel nuts through the plastic walls of the containers, and camera and flash were then mounted on a standard monopod.
Lead weights in the flash container were used to make the whole unit neutrally bouyant.
Then it was just to drag along some adventurous models to the pool and start shooting. Shutter lag and card-writing speed were a bit of a problem given the limited time the models could pose, but the image quality was fine for these sorts of pictures, and we were all pretty happy with the results, which you can see here :