There's nothing wrong with Charmander. What you did is over-level your Pokemon (seriously, a Venusaur before you got to the third Gym). Hell, I could destroy Misty's Pokemon with flamethrower if I had a Charizard by the time I fought the second gym. Its not skill or smarts that got you through the game, you over-trained.
Seriously, I don't know how people manage to get such high levels so early into the game, they must cheat or something. I was reading a FAQ in GameFAQs and the guy had L60 Pokémon when he fought Giovanni in Viridian, that's almost unimaginable to me.
On to the topic. If you think about it, any Gym is easy to beat once you know what you're doing.
If anyone actually stopped to think about it, you would realize that in most cases (in every Pokemon game), you can catch Pokemon in the areas surrounding those Gym cities (or earlier on) who have the type advantage over the Gym Leader.
That's usually my strategy in Pokémon games. Actually, in FRLG, they went to such extent that they not only gave Charmander Metal Claw, they also added Mankey to Route 22, which learns Low Kick and destroys Brock's Onix. And of course Mankey doesn't become useless after the second gym like Butterfree.
Examples of clever map placement in FRLG:
Brock: start with Bulbasaur/Squirtle, or catch a Mankey
Misty: Route 24 has Bellsprout/Oddish
Lt. Surge: Diglett's Cave just east of Vermilion
Erika: Growlithe/Vulpix east of Celadon, also Pidgey/Spearow literally everywhere
Koga: Safari Zone has Rhyhorn, Nidorino, Nidorina, all of them good against him
Sabrina: Gastly in Pokémon Tower
Blaine: Seafoam Islands with tons of Water Pokémon just before Cinnabar
Giovanni: By this point you should have something to beat him
Examples in other games:
GSC: Ice Path before Dragon Gym
RSE: Not sure, been too long since I last played it
DPP: Eterna Forest with tons of Bug and Flying Pokémon before Grass Gym
BW: Desert with Sandile (Ground Pokémon) before Electric Gym
B2W2: Never played it