Why is the TTL for a loopback (127.0.0.1) 128 seconds, and yet it is relatively small (48 seconds) for others?
First, let me clarify a minor point: TTL doesn't really define the number of seconds that a packet will be allowed to live on the network. In practice, it defines the number of routers that a packet can be forwarded to. Each router that forwards a packet decrements the TTL by one. Routers don't have any way of keeping track of when a packet was sent, so it's impossible for them to drop a packet based on the number of seconds it's been on the network.
The default TTL for all traffic in Windows 2000 (and most recent Windows OSs) is 128, regardless of the interface used. However, any application can override that default when sending packets. For example, PING sets the TTL to 32 by default. So, if you're seeing traffic with a TTL of 48, the application probably overrode the default.
You can change the default by modifying this registry value: