Shane's right. Pokemon Stadium. Go through the R-2 Prime Cup (Master Ball division) with a Pikachu on your team. This Pikachu must not already learn Surf, and it must have come straight from your Gameboy cartridge. (Yellow works best for this.) Then, don't register your team. Go into battle, and don't use any continues.
If you do it right, then when you finish the cup, you'll be awarded with a screen that has a Pikachu on a surfboard. In addition, the Pikachu in your party can now learn Surf.
The Fly thing was a Pokecenter move, if I recall correctly, but don't quote me on that.