Here is a root structure displaying where each file should go.
.. UT2004 folder
--- System
Punisher.u
Punisher.ucl
Punisher.txt
Run UT2004, and from the Mutators list select Punisher and select a map to play on.
If you run a server and prefer not to have to add the mutator, open up UT2004.ini, find [Engine.GameInfo] and add ServerActors=Punisher.PunisherServerActor to the ServerActors list.
2. Punisher.. any relation to the comics?
Afraid not, but what Punisher does is give the admin (in an online game) or the host (offline game) a variety of commands to use to "punish" players.
Remember that in an online game, you must be logged in as an admin to use these commands.
You can use "mutate commands" to bring up a list of commands in case you forget them. Here's a lowdown of each punishtype and what it does:
Syntax: mutate punish punishtype playername
* kill - Simply kills the player.
* slowdown - Slows the player down completely.
* striphealth - Leaves the player with 1 health point.
* redeemer - Gives all the players except the specified player a redeemer.
* fatalboost - Launches the player up into the sky, which usually kills them upon landing.
* timebomb - Causes 80 grenades to erupt around the player.
* teleport - Teleports the player randomly around the map.
* hellbender - Drops a hellbender on the player (quite amusing).
* pupae - Spawns some pupae around the player.
* fart - Makes the player emit a nalicow moo and spawns a huge explosion around him/her, revealing the location.
* smork - Spawns a Warlord above the player. Use multiple times for greater effect.
Note that this mutator is completely serverside. You don't need to add it to your ServerPackages, and you can run it as a ServerActor (see above) so that you can always load it with your server if you want to.