You can combine the hit and dammaged event handlers like this (to init field):
this addEventHandler [{Hit}, {_this select 0 setDamage 0}];this addEventHandler [{Dammaged}, {_this select 0 setDamage 0}]
Then you'll have an immortal unit. It can very likely be that you only need the dammaged event handler to save a unit from drowning, like RujiK is saying. Take the hit event handler away if it is not needed, I can't test it now by myself.
If you need to have it only for the time the unit is in the water, you need to detect when player is in the water of course, add the event handlers, then remove the event handlers when the player has gotten away from the water.
Second possibility (which I would use because it is simpler to do) instead of adding/removing the event handlers when the unit is in the water or not, is to make a if () then {} condition to both of the event handlers, to detect if the unit is in the water and only then apply the setDamage command.
For detecting if a unit is in the water, I suggest you check out the function library. At a quick look the elevation function by Mr.Peanut might be most usable to this purpose. I haven't tested it though.
One more thing: if you want to keep the damage value the player has gotten before dropping into the water, you would need to use that damage value in the event handler(s). That way the players wouldn't have a way to heal themselfs from battle injuries by simply dropping into the water.