In here, all the location of the special/rare pokemons that can be found in crystal version of pokemon are listed here (Pokemon with N/A means it can't be found anywhere in this version and can only be obtain by trade from other versions):
Aipom - Can be found in all trees that can be headbutt.
Aerodactyl - In Pewter City Museum, some kind folks will give you the Old Amber which you can take to a lab in Cinnabar Island and revive Aerodactyl.
Bulbasaur - N/A.
Bellsprout - It can be found at Sprout Tower in daytime.
Caterpie - Can be found in all grasses.
Charmander - N/A.
Clefable - Capture a Clefairy (located in Mt. Moon of Kanto) and put it in the daycare with a Ditto or another Clefairy of opposite gender. Just wait for a few minutes and the old man will come out of the daycare. Go talk to him and he will give you an egg.
Chansey - Can be found in Route 14 of Kanto.
Chikorita - In Prof. Elm's Lab.
Corsola - In a lake of Route 34 near Goldenrod City, Use any Rod (Except Old Rod) in the lake to find Corsola.
Cyndaquil - In Prof. Elm's Lab.
Diglett - Inside Diglett's Cave In Vermillion City where Snorlax blocks the way.
Ditto - In grass under daycare of Goldenrod City.
Doduo - In grass of Mt. Silver near the Pokemon Center.
Dratini - Located in Dragon's Den.
Dunsparce -Located in Dark Cave.
Eggsecute - In trees where your pokemon can use Headbutt
Ekans - You can find this pokemon in Game Corner of Goldenrod City. You have to buy there to get Ekans.
Elekid - Capture Electrabuzz (located near the powerplant in Kanto) and put it in the daycare with a Ditto or another Electrabuzz of opposite gender. Just wait for a few minutes and the old man will come out of the daycare. Go talk to him and he will give you an egg.
Eevee - In a house (south-west of the Game Corner in Goldenrod City where Bill is living). Talk to Bill and he will give you Eevee.
Farfetch'd -
Gastly - It can be found at Sprout Tower in nighttime.
Geodude - Can be found in all caves.
Girafarig - N/A.
Gligar -
Goldeen - In every waters.
Grimmer - At Celadon City in house where an old man stands in front of the water.
Growlithe - In Route 8, 35, 36 and 37.
Heracross - This pokemon can only be seen in Azalea trees near kurt's house. But it cannot be found so easy. Always use headbutt on the trees to until Heracross appears.
Hoothoot - Can be found anywhere in nighttime.
Hoppip - Can be found in all grasses.
Horsea -
Houndour -
Igglybuff - Capture a Jigglypuff and put it in the daycare with a Ditto or another Jigglypuff of opposite gender. Just wait for a few minutes and the old man will come out of the daycare. Go talk to him and he will give you an egg.
Kabuto - N/A.
Kangaskhan -
Koffing - Can be found in Burnt Tower.
Krabby -
Lapras - Can be found on fridays inside the cave near Azalea town.
Larvitar - Can be seen inside the cave of Mt. Silver.
Ledyba -
Lickitung -
Machop - Can be found in all caves.
Magby - Capture Magmar (located at Burnt Tower) and put it in the daycare with a Ditto or another Magmar of opposite gender. Just wait for a few minutes and the old man will come out of the daycare. Go talk to him and he will give you an egg.
Magikarp - Can be found in any water when using a fishing rod.
Magnemite -
Mankey - N/A.
Mantine -
Mareep - N/A.
Marill -
Meowth -
Miltank - Locate in west of Ecruteak City.
Misdreavus - Inside the cave of Mt. Silver.
Mr. Mime - In grasses near the Power Plant of Kanto.
Natu -
Nidoran(female) - Located in north of Goldenrod City.
Nidoran(male) - Located in north of Goldenrod City.
Oddish - Omanite - N/A.
Onix - Located in all caves.
Pineco - On trees where your pokemon can use Headbutt.
Phanpy - In grasses south of Blackthorn City.
Pichu - Capture a Pikachu (located in grasses south of Pewter Town) and take it to the daycare with Ditto or Pikachu of opposite gender
and leave it there until you get an egg from the old man in the day
care. Make it hatch and you will get Pichu.
Pidgey - Can be found in all grasses.
Psyduck -
Rattata - Almost everywhere.
Remoraid - Located in Route 44.
Rhyhorn - In Victory Road Cave.
Sandshrew -
Scyther - Can only be found in Bug-Catching-Contest event in north of Goldenrod City.
Sentret - Can be found in all grasses.
Shellder -
Skarmory - In grasses south of Blackthorn City.
Slowpoke - Can be found in Slowpoke Well and other caves.
Smeargle -
Smoochum - Capture a Jynx (located in Ice Path Between Blackthorn City and Mahogany Town) and take it to the daycare with Ditto or Jynx of opposite gender and leave it there until you get an egg from the old man in the day care. Make it hatch and you will get Smoochum.
Sneasel - Inside Ice Path between Mahogany Town and Blackthorn City at nighttime.
Snorlax - This pokemon can be found in Vermillion in Kanto. Set the pokenav to where the pokeflute plays to awake Snorlax and be able to capture.
Snubbull - Located in south of Goldenrod City.
Spearow - Almost everywhere.
Spinarak - Almost everywhere at night time.
Squirtle - N/A.
Stantler - Located in south of Ecruteak City.
Staryu -
Sudowoodo - Located in Route 36 between Violet Goldenrod and Ecruteak City. Can be obtain after getting the Squirt bottle in Goldenrod City.
Sunkern - Located in north of Goldenrod City where Bug-Catching Contest is.
Swinub - Located in Ice Path.
Tangela - In grass of Mt. Silver near the Pokemon Center.
Taurus -
Teddiursa -
Tentacool - In all water places.
Togepi - After you beat the leader in the first gym, go to Pokemon Center and you will see Professor Elm's Assistant. Go talk to him and he will give you Togepi.
Totodile - In Prof. Elm's Lab.
Tyrogue -
Unown(A-Z) - Can be found at Ruins of Alph at south direction of the first gym your going to battle.
Voltorb - In Team Rocket's hide out and grass near powerplant in Kanto.
Vulpix - N/A.
Weedle -
Wobbuffet -
Wooper -
Yanma -
Zubat - Can be found in all caves.
These are all the pokemons I know and the location where to find. Enjoy pokemon crystal hunting everyone!