Arduino GPRS shield caught fire

Other than powering devices on at the same time (although even then there is always bound to be time differences of at least a few milliseconds), is there any practice recommended to somehow protect against this? It just seems like having power on one side of an equation is something that is going to happen all the time.