I have been thinking about this lately and im not sure its always best to buy in for the full amount. If i take a seat at a table full of players i know are fish sitting with $2 stacks, but i am out of position to a guy I know is a solid, pretty decent player (for my stakes) sat with $5 then im not going to buy in for the full $5 because the only way im going to be making descisions for that amount is out of position against someone who might be able to outplay me. Id much rather sit there with $3 and have the chance of taking a fishes whole stack but not losing mine to a good player.
If i have position of the big stack, or he isnt a good player, or he is very predictable and lets me know when he has good cards I will buy in for the full amount but i dont think it is always the best option.