I know a lot of people like the water system as it is, but I think I have a better way to satisfy everyone's idea of how water should act. Right now I exploit waterfall physics in construction. Think of it like a safety net. A couple reasons for this:
Problem: I can swim up the water fall so I can build bridges with fine details by building under them once the part you walk on is done and not worry about falling to my death; or really drowning since I can swim half-in, half-out from the sides and get some air.
Solution: Make the water flow speed incredibly fast when going vertical. It should fall as fast as the player does.
Problem: I can jump back down and as long as I land in 1 pixel of water, take no fall damage (like in the source/goldsrc engines).
Solution: There is already a mechanic for damage on momentum (normal fall damage) and when you hit water, your momentum is slowed until you run out of kinetic energy from the drag; the more momentum you have, the deeper you will travel under water. All these have to do is be combined, so that if you hit solid ground before your inertia is lower than a certain speed, you will take fall damage based on the energy you impart from hitting the object. IE, just because there's water beneath you, doesn't mean you're safe to jump in from a great height. You can still die or get injured if you jump really high into shallow water.
Problem: Because the source of the water is a block that creates a flow, and is the only part of water I can pick up, I can reuse the same waterfall for ever. I can use them as elevators that only go down by starting a flow, and stopping it then stepping into the "bubble" of water that will slowly fall to the ground.
Solution:The this part may not actually be a bad idea, but it should be used more like a hydraulic instead of being in really weak gravity. With a hydraulic system you could also make an elevator that goes UP. However, I think if that were the case then certain block types should be able to "float" on water (such as wood) so then you could have an actual elevator car with a separate shaft and mechanism.
*busts out graphics*
Let's say I have carved myself a huge hole in the ground.
I'm a lazy man. Not lazy enough to not dig a 50x50x150 deep hole, but too tired now to build stairs to get out. But I am clever! I like to work smart, not hard! So while carving my hole I also made a couple of water shafts in the sides.
If water worked with a bit more reasonable level of realism in that it can not just fill spaces lower, but higher you could use water in much more clever methods while still keeping it simply as well as slightly hazardous. This can be done by giving springs a set number of blocks they MUST create in X, Y and Z. For the sake of this, I will keep it small and say about 20 water blocks, including the spring itself. The water will ALWAYS generate 20 blocks, but it can not pass through other blocks (unless like a previous suggestion special blocks are made that ONLY water can pass through).
So if you dug a 1x1x1 hole and placed a water spring in it, you could have a small fountain; the water blocks would be created so they go 2 blocks above the spring and then spill out in the same patter they do now, but there will be exactly 20 blocks of water (for clarity, I am counting all non-full height blocks as full blocks).
One spring can not go more than 2 z blocks above it self (so 1 spring would be 3 z blocks total height maximum) but multiple springs on top of each other could give more height to the water if you need it for wired things like elevators (this is assuming that eventually some methods of water flow controls are made). However, just like now, water will always have a 1x1xinfinity bottom z. Meaning anything UNDER the spring will act as it currently does (though as in the first suggestion, the flow should be much greater). It is only the Z level above the spring that should be changed.
The water from the other side would need to create more blocks in the Y and Z direction to meet it's 20 block quota. Blocks that are directly below the spring are not counted, and can fall forever, only blocks created upward and outward are counted (just as water acts now). So while there are 8 water blocks on the left, the top one being a spring, only the spring itself is counted for it's quota in that entire column. The blocks moving from left to right would bring it's total to 10. It needs to make 10 more blocks in any space it can fill, while not exceeding a 2 block height above the spring. So ( = spring = uncounted water blocks, = counted blocks.) let's go back to a new pic:
The new water would do this. It would move the same speed as a player when moving down, but as slow as lava falls when it has to rise. Now, don't think this will pose an EXTREME level of danger when mining/spelunking. This is just in a narrow tube consisting of 24 total blocks. Unless the shaft you're tunneling is very narrow and shallow, there's almost no way you would get trapped and drown from 1 geyser. Using multiple springs, however, could generate more water to fill larger areas for the sake of traps.
But this elevator could be better, more safe, and made harder to construct with blocks that can be moved by water. These blocks will "float" on water. They can be pushed in any direction by water blocks being created so if you have a movable block in a vertical shaft like I have here...
(for the sake of the visual aid, pay no mind that this time there are less than 20 counted water blocks. :tongue.gif:)
I now have a working elevator shaft with something I can stand in and not drown if I don't constantly swim with the water. If I cut away the wall to get to the shaft, I would simply put a door that closes when I start the water flow, so the water can travel up without spilling into the big hole on the other side instead. :smile.gif:
Better, and simple (even if the explanation itself is complex)
Stronger downward current means you cant escape vortexes :C
If it's rolling down a hill it wouldn't be too fast; just if it's going off a long vertical drop. Let's say it shouldn't pick up maximum speed for 3 blocks (at which point you would take fall damage normally), so it would be slow enough to escape the fall if you encounter a natural waterfall, but too fast beyond you escape/swim up a mountain.