I've seen this question a lot, especially in the Betta Adoption Thread so I thought I would oblige :)
*There are alternate methods but this is how I do it and what I find is most popular*
Shipping a fish:
The Box
First you will need a box. Preferably one that is "cube" shaped and not flat.
Next you will need styrofoam insulation. About 1/2 inch thick. This can be bought at your local home improvement store. **NOTE: you can also use bubble wrap, news paper, and packing peanuts. The styrofoam is much stronger, however and safer.**
What ever packing you use make sure you have enough to cover all sides, top, and bottom of the box. So the fish is essentially "wrapped" in packing and never actually touches the box itself.
The styrofoam you will cut so it fits snugly in the box like so..
**if you use some other form of packing, place a layer of what ever it is on the bottom first, then add the fish, then pack around the sides**
Bagging the fish
You will need to order plastic shipping bags. THIS IS A MUST! Sites like ebay, aquabid, or ibcbettas.org are good sources to get them from.
First, fill the bag with FRESH, dechlorinated water. DO NOT use water that the fish has already been in. He is going to need the cleanest water possible. Fill it about 2 inches or so (you can add more later if you feel its needed). When it comes to bettas, the amount of water is not what your looking for, its the amount of AIR.
Next, Net your fish and carefully place him into the water (Alexander will be my model for this thread

).
After that grab the bag from the top so it is "fat" with air. DO NOT BLOW AIR INTO THE BAG! In case you missed that science class, the air you blow from your mouth is carbon dioxide gas... not oxygen. After you have air in the bag twist the top really tight and knot it.. the way you would do a balloon. It can take several tries but keep trying.
Grab the bag..
Twist and knot..
Make sure that there is enough water in the bag so that if it is turned sideways the fish is still under water.
Next invert the bag (turn it upside down) and place it into another bag. Knot it just like you did the first bag. This is to help prevent any damage.
Next place the fish in the box. If there is enough room put the fish on its side. I've mailed fish placed up and on the side and I don't really think there is much of a difference.
After that you need to fill the empty spaces with packing material. Peanuts, newspaper, bubble wrap all work well. I've also used grocery bags (shown here) and old class notes for packing. Its a great way to recycle.
Cover the top of the fish with packing material and if your using styrofoam inserts put the top of that on.
After that tape up the box. Using a sharpie or labels printed on your computer write stuff like "FRAGILE", "THIS SIDE UP", "PERISHABLE", and "AVOID EXTREME TEMPERATURES".
Avoid writing "live fish" on the box because a caring postal worker, meaning well, might put the fish next to a heater or air conditioning. After that your fish is ready to go to his new owner
If other posters have different shipping methods or if you have questions please feel free to comment. Happy shipping!