Well, it's not terribly complicated, really. Tell ya what: I want to keep this stuff under wraps until I release, but in the spirit of the thread, I'll give you some really useful hints:
1. You need to modulate the vertex's position in worldspace, using vertex colors as your control parameters to adjust the scale and frequency of the resulting sine curve.
2. Because you're using vertex colors, this technique has one semi-serious drawback; it can't really be fully compatible with vertex color paint. However, the flip side of that is that you actually save instructions on the pixel shader side, and for simple light / darkness you could reserve a vertex color to use as a multiplier (I didn't, though; leaves don't generally need it and it can be faked in the diffuse).
3. It's important
not to modulate the original vertex positions. Firstly, they are constants and should not be messed with at all, if you want it to play nice with ATi. Secondly, you need the originals to preserve the relationship with the shadow depth volume. That is the only "tricky" part, but since I wrote GPL code to demonstrate that a couple of years ago and lots of articles have been written about flora shader stuff ever since Crysis demonstrated the mind-boggling things one can do with vertex shaders, I don't suppose that's a deep dark technical secret.
4. Like I said, the hard part was the technical-modeling end; I had grass and bushes looking nice in half an hour, but the trees took a long time and still aren't what I really wanted. I'm talking to Marco about that; I ran into issues with MeshLab (prolly User Error on my part, it's a complex piece of software) that prevented me from doing it like I'd originally planned.
Anyhow, hope that's enough to give you some ideas, if not... well, I'm going as fast as I possibly can on the other stuff
