A) the type/size/configuration of your phones antenna
B) how close and how many cell towers are in your area
C) any geological interferences in the area (mountains, valleys..)
you could try updating your list of cell towers (normally a short little code you enter) which causes the phone to pull a new list. this boosted my signal from about 0-1 bars to 0-3 bars in an area known to be a deadzone. i still drop alot but overall signal is better than before.