Two factors mainly.
One is what @John Custer noted, and more specifically, the signal to noise ratio is usually close to the threshold for detection, and going indoors, unless you are by a window with LOS visibility to the satellites, you will loose likely 10-20 dB minimum, and more if you are behind concrete walls or multiple walls.
GPS receivers are designed for a detection threshold of about -127 dBm (dB with respect to a milliwatt), in a detection bandwidth that is less than a Kilohertz, closer to 100 Hz, after the spread spectrum correlation. Their margins of operation are no more than 10 to 20 dB, so as soon as you go inside you can loose it. And the signals outside are never that strong; they are above threshold if you have more of less line of sight (LOS), by the margins. The signal outside will vary some due to random effects, but not that much because with LOS, there won't be much absorption or multipath (anyway multipath gets eliminated with the correlation). That is also why they don't have much margins. The GPS satellites are about 12000 miles up, and you will get more or less LOS, or nearby strong scattering, or you just won't see the signal.
Cell or smart phones have a sensitivity of about -105 dBm, maybe -110 (one bar) at best, in a 10 KHz or so detection bandwidth. But if you are outside, within a couple miles of a tower, and not much blockage, you can receive signals 30 or 40 dB stronger (3,4 or 5 bars), so you have that much margin. So most of the time your phone is working far enough away from threshold that the scattering and multipath interference, and absorption, by trees and objects and little hills) doesn't bother you much.
The other factor is the frequency. Mobile phones are in the 1800/1900 and 800/900 MHz bands, and GPS at about 1500 MHz. Higher freqs are much worse for propagation, and the 800/900 bands, and the upcoming 600/700 bands are much better than the higher freqs. Higher freqs get absorbed much more by objects and vegetation, and do not diffract as well around objects and small hills and trees as the lower freqs which make it through easier. Most phones are multiband, and they will look for the strongest signals. The recent auctions for freqs for cellular have all been in the less than 1000 MHz bands, and the companies pay because they propagate much better. They can penetrate inside better.
There is no great solution for inside geolocation. You can set up base transmitters is die as reference points, and if enough (visibility to 3 or 4) it can work. You can buy these systems, but doing all this inside most buildings or houses is more trouble than anybody wants. I'd heard about trying to do it using TV VHF signals which you often can get inside houses (not so easy buildings), but I have not seen this in system. Anyhow, no cell provider wants to put a TV receiver in a cell phone. And since most people know where they are inside it is only really pushed by the 911 community, and nobody listens much for inside geolocation. So sometimes it works and sometimes not.
Best Answer
If you have a look at my answer to http://physics.stackexchange.com/questions/160137/faraday-cage-in-real-life?lq=1 you will see I give a relatively simple formula for transmission of an EM wave (at radio or microwave wavelengths) through a sheet of metal. $$\frac{E_t}{E_i} \simeq 4 \frac{\eta_{\rm Fe}}{\eta_0} \exp(-t/\delta) ,$$ where $t$ is the thickness and $\eta_{\rm Fe}$ is the (complex) impedance of the steel, with a magnitude given roughly by $\eta_{\rm Fe} = (\mu_r \mu_0 \sigma / \omega)^{1/2}$, where $\omega$ is the angular signal frequency, and $\mu_r=1000$ and conductivity $\sigma= 2 \times 10^{6}$ S/m are reasonable values for steel, $\eta_0 =377\Omega$ is the impedance of vacuum, and $\delta \sim (2/\mu_r \mu_0 \sigma \omega)^{1/2}$ is the skin depth of a good conductor. The first term in the product is caused by reflection from the steel, the second term is caused by dissipation of the wave as it travels in the steel. The transmitted power fraction would be the square of this.
GPS signals work at about 1.5 GHz, so $\omega \sim 10^{10}$ rad/s, $\delta \sim 3\times 10^{-7}$ m (which already tells you the answer) and $\eta_{\rm Fe} \sim 5\times 10^{-4}\Omega$. The fraction of the E-field at that frequency that is not reflected from a steel surface is already down at $2\times 10^{-6}$ and the fraction that transmits a cm of steel is smaller than can be accommodated on my calculator. A very thin steel foil would block a GPS signal.
Obviously, GPS can penetrate other (non-conducting) materials, like glass and air for instance. It can also penetrate conducting frameworks, so long as the openings in the framework are much larger than the wavelength of $\sim 20$ cm. The windows of a car are therefore an intermediate case.