scriptmarkers are what you want, although you need a couple of variables too, one called rain_active, the other snow_active, or something along those lines.
i assume if you say "how do i end a script" that it's looped?
inside your snow loop put
?rain_active:exit
and vice versa. then in the mission, use a trigger or some other script to swap those variables. so when you want the snow to end, just set rain_active to true.
later on, you can call the weather scripts again. just reset the variables.
EDIT - i should have pointed out that scriptmarkers are the #words proceeded by hash symbols and used for goto "words" jumps.
that way you can have both your snow and rain in the same script, and use goto commands to swap between them. if you want to post the scripts here (and they're no overly long) we can sort it out easier.