OK, I made a simple test project to make sure it wasn't my code that was screwing up somewhere, and try and isolate what is going on here. I took VB6 tutorial 7 (the landscape one) and added in another form, made that the startup form, added a button to spawn the 3d window (and some option boxes for fog/rain options), and a module to store the fog/rain option variables in.
I also moved the form_load events to a seperate sub that's called from a timer right after the form loads (otherwise the form_load never finishes, and causes an error from the calling form button press event), and added in the basic atmospheric options.
When I run it, the first time I spawn the 3d window it works perfect. Mouse look, fog, rain, keyboard movement all work. Then the second time I spawn the 3d window the fog still works but the rain never works right again, no matter how many times I close it and respawn it.
Another odd thing is that on the subsequent runs, sometimes mouse look or keyboard movement doesn't work, or sometimes both. It looks like this bug affects more than just the rain, but the input engine as well?
Here's a link to the test project:
http://thefezman.googlepages.com/home