Battery lifetime calculation approach for Arduino + GPS/GSM
GPS units have a "cold-start-to-fix" time that averages over 1 minute, and you can't really speed that up except by keeping the devkce "on" all the time, due to the way the GPS system works.

This is a complex thing that's far beyond the scope of this question, but it's well explained in the Wikipedia Article.

In short, your receiver has to download a LOT (relative to the transmission speed) of data from the satellites in order to know where each satellite is located, before it can start using relative timings of received signals to start calculating its location.

Also, your circuits will still consume some power, even when "turned off," unless you're physically disconnecting them from the battery supply every time you finish sending a GPS text. You're going to need to figure in the 'standby current' of your devices for any accurate estimation of battery life.