On ebay you can find cheap u-blox mini-pcie gps units for around $10 including shipping. They are for internal use in laptops and similar (most likely hooking up to the usb bus over Mini PCIe), but it turns out that the pads on the backside expose connectivity options such as uart and usb data.
I soldered on a pin header for ease of use, and also attached a cheap ceramic antenna using double sided tape.
The UART pins will spew over standard NMEA 183 data, so it should be easy to use with both computers and microcontrollers.
On the raspberry pi you can install the gpsd and gpsd-clients packages. Connect the tx gps pin to GPIO 15 RXD on the pi (you only really need one way uart, unless you want to change settings on the gps). Also connect ground and vcc, the gps requires 3.3v and probably need more umphf than the 50mA max 3.3 pin on the pi can deliver. I connected power via a 5v pin and a 3.3v regulator. I do not know if the gps is 5v tolerant, but probably not.
Launch the daemon ( gpsd -b /dev/ttyAMA0 ) and a client ( cgps ).. Remember to disable the tty running on /dev/ttyAMA0 before you use the UART pins for something like this.