In Ruby/Sapphire, you have to catch at least 100 Pokemon in the pokedex before you can move pokemon from a different game to your cart. In FireRed/LeafGreen and Emerald you have to unlock the national dex before you can move them. You can always move pokemon from your cart to Box and back to the original save.
I used to have a complete pokedex stored on Box and I would just transfer it to my carts whenever I started a new game. A lot of them ended up getting transferred to diamond, but I'm working on completing the gen 3 pokedex again while I wait for X and Y. Luckily I still have the disc that gets you Jirachi and the e-reader card that gets you the Eon ticket for Latios/Latias.