Photo by John Boxall
Which pins do they use?
To determine if two shields are compatible, you have to read the specifications of both shields.
The best source for this information is the data sheets supplied with the shields. However there is also this Shield List
Can you reassign pins?
Some shields provide a means to alter which pins are used for communications. This can take the form of a switch or a jumper - either pull-off or solder-bridge type. (the GPS shield in the question has jumpers).
Where the shields do not support pin-reassignment or provides insufficient flexibility, to work-around incompatibilities you can use an in-between shield designed for the purpose.
here is one example:
You hear it all the time in the Arduino community, “will this shield work with my other shield?.” I think we’ve all been disappointed to find that two of our favorite shields compete for control of a digital pin here or a serial pin there. While there are sometimes some clever workarounds from elegant code modifications to aggressive ‘greenwiring,’ Mayhew Labs may have come up with the simplest solution thus far: The Go-Between Shield.
Are any alternatives for the foo shield
I notice that Arduino.cc now point people to the list referenced above. They used to have their own list.
Product recommendations are off-topic here but, obviously, you can search