I saw your post and modified one of the templates to look a little more like rain. Perhaps you can improve this effect.
code:
/////////////////////////////////////////////////////////////////
BMAP rain_map,<rain.pcx>;
var rain_mode = 0;
var rain_pos;
var rain_rate = 60; // raindrops per second
var rain_counter;// start rainfall around the player
// original idea by Harald Schmidt
function rainfall()
{
if(player == NULL) { END; }
rain_mode = 1;
while(rain_mode > 0)
{
// all raindrops will start 50 quants above the player
rain_pos.Z = player.Z + player.MAX_Z + 50;
// depending on the frame rate, create several raindrops at the same time
rain_counter = rain_rate * TIME;
while(rain_counter > 0)
{
// place raindrop somewhere near the player
rain_pos.X = player.X + RANDOM(500) - 250;
rain_pos.Y = player.Y + RANDOM(500) - 250;
// now create one drop (emit 1) at this position
emit(1,rain_pos,rain_particle);
rain_counter -= 1;
}
wait(1);
}
}
function rain_particle()
{
// just born?
if(MY_AGE == 0)
{ // this simple rain should do nothing more than fall to earth
MY_SPEED.X = 0;
MY_SPEED.Y = 1;
MY_SPEED.Z = -5; // experiment with this value
// Set the size and color you want (or maybe a bitmap)
MY_SIZE = 20;
// MY_COLOR.RED = 255;
// MY_COLOR.GREEN = 255;
// MY_COLOR.BLUE = 255;
my_map = rain_map;
my_transparent = on;
END;
}
// remove raindrop if below player's feet
if((player == NULL) | | (MY_POS.Z < player.Z - 100))
{
MY_ACTION = NULL;
}
}
ON_R rainfall;
It would nice to figure out how to keep it from raining indoors and how to make puddles on the ground and such. 
Here is the particle I used if you want it:
www.spiritshock.com/downloads/rain.zip
[This message has been edited by Eldurin (edited 15 May 2001).]