There are several weather entities that will spawn weather effects in a map.
A rain entity has several spawnflags which affect the behaviour of the rain. It can be light, medium or heavy. Heavy rain also comes with lightning.
Acid rain is available in JA, as seen on Vjun. This causes damage to the player and NPCs.
The outside_shake spawnflag causes a camera shake to happen when the player is outside. This is used in t1_rail.
The snow entity creates snow, as seen on Hoth maps.
This generates a wind effect, which blows other weather effects (rain, snow and fog). The angle and speed of the wind can be set by the mapper.
A mapper controls where global weather effects occur by using special brushes called Inside and Outside brushes. These are invisible (nodraw, nonsolid) brushes textured with the "inside" or "outside" shaders. These shaders are system shaders (found in system.shader).
Only one type (inside or outside) may be used in a given map. If inside brushes are used, the areas of the map contained within these brushes will not have weather effects in them. If outside brushes are used, the areas of the map contained within these brushes will have weather effects in them.
JA adds a weatherzone entity to reduce map load times. The game will only check for inside and outside brushes that are inside weatherzone brushes. To make a weatherzone, create a brush and texture it with the weatherzone shader (also in system.shader); then convert this brush into a misc_weather_zone entity.
The console command r_we can be used to generate weather.