We don't pre-assemble the headers on because there's two options! You can either use plain 0.1" male headers (included with the shield) or Arduino Shield Stacking headers.
Most people will be happy with assembling he shield with male headers. The nice thing about using these is they don't add anything to the height of the project, and they make a nice solid connection. However, you won't be able to stack another shield on top. Trade offs!
If you want to attach another shield on top, you can use stacking headers. These headers provide a 'pass-thru' connection so multiple shields can be attached. However, if you put a shield on top, its likely it will cover the GPS patch antenna so you may need to get an external GPS antenna. Stacking headers also make the project taller (harder to fit into a small box) and the headers are thinner so connection is not as strong (so if the project is going to be shaken around a lot it may not make good connections during harsh movement)
If you want to go with stacking headers, place the the shield PCB on top of the Arduino and fit the long pins through the pads until they slot into the Arduino. Depending on which version/type of Arduino you may need to use 2 x 8pin and 2 x 6pin or 1 x 10pin, 2 x 8pin and 1 x 6pin.