There is a standard to keep time on LANs now: IEEE-1588 which is built into a lot of new network cards. It enables the NIC to time stamp incoming packets which can be used to achieve sub microsecond timing.
Normally it can be implemented with a single GPS receiver on the network that then feeds all servers/devices. It is starting to become very common in broadcast applications as a reference. Furthermore most manufactures already offer some application notes/libraries to make use of it. And linux offers PTPd which implements the standard.
PTP is a good choice for synchronizing clocks on a per-segment basis, but it doesn't work across a WAN and there are lots and lots of devices out there that don't support it.
NTP is good for doing time sync across the WAN, but to get the most out of it for certain applications you need to hook it up to reference clocks.
So, NTP can use PTP as a reference clock, and Bob's your uncle.
Normally it can be implemented with a single GPS receiver on the network that then feeds all servers/devices. It is starting to become very common in broadcast applications as a reference. Furthermore most manufactures already offer some application notes/libraries to make use of it. And linux offers PTPd which implements the standard.
http://ptpd.sourceforge.net/
http://en.wikipedia.org/wiki/Precision_Time_Protocol
http://www.nist.gov/el/isd/ieee/ieee1588.cfm