No, by default the watchdog is disabled. Here is a thread with information on it: http://forum.arduino.cc/index.php?topic=63651.0 Also: I don't think the standard delay function resets the watchdog, so if you are using delays longer than the configured reset period, your arduino will reset.
If you are using the wathcdog, you will need to have watchdog reset commands spread throughout your code, and ensure that your code resets the watchdog before it times out, unless you want your arduino to reset, in which case, you can just enter an endless loop that does nothing.
As far as your GSM module is concerned, try figure out if it has a reset pin, if not, you could reset it by controlling its power through an IO pin and a transistor/FET, since it looks like it can draw up to 2 Amps in short bursts. By the looks of it, it has an external power connector and a switch to switch between Arduino power and external power, so it should be relatively easy to wire up it's external power source to be controlled by an IO pin.
In all honesty, there must be another reason for it to stop working so often. before you go down this route, try and figure out first if there isn't something else you might be doing wrong. Go back to the basic examples, and see if they run for more than a few minutes. If they do, then you must have a bug in your code, and you are trying to solve it by hitting it with a very large hammer.