Is there a way to sense all collisions except the one selected?
That is super easy to do logically.

You want the controller (in this case it is an and controller) to send a positive pulse to the actuator(s) when the the cube collides with anything Except for the objects with the property Water. 



The first collision sensor is always true as long as the cube is not colliding with Water. True level triggering is enabled, so every logic tick the and controller gets a positive pulse. however, for the actuator to receive the pulse, all sensors must be true, at the same time. 

The second collision sensor detects a collision with anything. 

With this setup, a collision with water obviously will not work because the first collision sensor will not be true when colliding with water. When the cube is falling or hovering, (not colliding with anything) the first collision sensor will be true, because the cube is not colliding with water, but the second will not be true.