I have made a flowmap tool to calculate natural river flow by colliding a terrain mesh with a water mesh and transferring normals. Curves can be added to show the river flow path.
The normals are then calculated into vertex colors, which can be read in a shader to portray the water flow.
The tool is available for download here. If you have any problems feel free to email me about it.