walk through walls

The so-called "glitch city" exploit can be taken a step further and allow you to explore virtually any place on the overworld map. The following step-by-step process was written by primorial#soup:

1. Enter Safari Zone.
2. Go back to the entrance of Safari Zone. When asked if you want to leave, select "No".
3. Save, restart.
4. Go to the entrance of Safari Zone again. The game will think you've already exited and ask you if you want to enter. Select "No".
5. Go FLY whereever you want. Within the next 500 steps, you may as well do something necessary for completing the game.
6. Shortly before these 500 steps are up, make sure that you only have one Pokémon in your team, and that this Pokémon is poisoned.
7. On exactly the 500th step, make sure you are jumping over a ledge. You will be teleported back to the entrance of the Safari Zone. From this point, you can walk through walls as you please, as long as you don't enter or exit a building.
8. Walk around in the Safari entrance until that Pokémon faints. You will be teleported to the Poké Center where you last saved. You can still walk through walls as you please. This can be used to bypass certain obstacles, such as guards blocking doorways, and the majority of Victory Road!

Let's walk through this step-by-step process with screenshots.

This is easiest if you begin carrying only one pokémon. Enter the Safari Zone (pay $500).
Attempt to leave the Safari Zone. When the gatekeeper asks if you're leaving early, say no.
Once you're back inside the Safari Zone, save your game.
Restart the game and continue, then try to exit the Safari Zone again.
The guard will be confused and think that you are trying to enter the zone. When he asks if you want to join the hunt, say no and proceed out.
From here on you must carefully count every step you take, whether it be walking, biking, or surfing. Find an enemy trainer or poisonous wild pokémon, and get your own pokémon poisoned.
Keep track of your steps, and make sure you jump over a fence on the 500th step. You can tell whether you timed it correctly depending on whether the "Ding-dong!" occurs when your character is in mid-air.
Inside the Safari Zone entrance building, you should now be able to walk through walls and the guards. Walk around in circles as you please, but be careful not to through an exit or beyond the black edges. Your pokémon will eventually run out of HP due to poisoning, so your character will black out and be warped to the last Pokémon Center.
Now you can walk through walls outside. Feel free to use Fly or Teleport to get around, but if you enter any buildings or fight against trainers the effect will go away.

If you're still confused, I've included two videos below. The first is an early clip taken when we first discovered this on tasvideos.org. The longer video is one segment of Thomaz's excellent Pokémon Blue speedrun. Because this is a speedrun, Thomaz rides the bicycle and moves quickly, but this is not a requirement. He also poisons his pokemon before going to the Safari Zone. You can do this too, if you plan it out properly.

back