With this topic, I wanted to discuss the different techniques for animating trees, flowers or grass. Not the creation process.
well, an elegant way to animate tree, is to use the same procedural structure, already used for creation. ICE is just one way. IMHO once you have correct structure, so you're able to separate motion of trunk, each branch, leaves, some kind of procedural noise can do the trick. That is, creative application of ICE 'turbulence' node, without need to simulate anything. Afaik, a lot of 'wind forces on trees' in 3d apps, belongs to procedural motion, not to simulation.'Wind force' is just a nice name.
If you have just a dead mesh, in best case you can separate motion of leaves, living the rest to some noise motion. This can hold the water, sometimes, but I wouldn't call it ultra-realistic.