but with 2.2.1 it would always work even inside! ever since the 3.0 it has been so off and uses triangular location. it's a wide known problem and seems to be because of 3.0. Apple needs to hurry up and release an update.
Try to reset your network settings. Nothing is wrong with the 3.0 gps.