you don't have to watch out for puddles with a CAI, and if you're worried you can get a dryfilter from companies like K&N pre-treated to repel water (they have dust ones too) or buy an intake from AEM with a bypass valve that works on a pressure type system.
The only time you would flood your engine is by submerging your filter in water (say a REALLY deep puddle), otherwise your splash guards on your car will prevent most water from even dreaming of coming into contact with your filter. (Guess who doesn't have a splash guard to protect his CAI - Me!)
Unless you have serious flood issues in your area, or live in a desert climate, CAI is probably the best way to go, as it gathers cold air from the ground area, rather than warmer air (depending on where you live - I don't want any arguments!) from your engine bay.