Got some more info on this issue from the server side. This issue only effects dash16, out of half a dozen or so players. It occurs with multiple clients on his end, so it's doubtful anything client-side is messed up. We discovered last night that removing his player dat, having him connect and disconnect once, then putting his player dat back resolved the issue. So it appears that something other than the dat is breaking, and gets fixed when he connects while his dat is missing.
Here's what the server console shows when he trys to connect:
2013-07-25 19:31:18 [iNFO] [sTDOUT] Loading Player: dash16
2013-07-25 19:31:18 [iNFO] [sTDOUT] Sending serverside check to: dash16
2013-07-25 19:31:56 [iNFO] [sTDERR] java.net.SocketTimeoutException: Read timed out
2013-07-25 19:31:56 [iNFO] [sTDERR] at java.net.SocketInputStream.socketRead0(Native Method)
2013-07-25 19:31:56 [iNFO] [sTDERR] at java.net.SocketInputStream.read(SocketInputStream.java:129)
2013-07-25 19:31:56 [iNFO] [sTDERR] at java.io.FilterInputStream.read(FilterInputStream.java:116)
2013-07-25 19:31:56 [iNFO] [sTDERR] at org.bouncycastle.crypto.io.CipherInputStream.nextChunk(Unknown Source)
2013-07-25 19:31:56 [iNFO] [sTDERR] at org.bouncycastle.crypto.io.CipherInputStream.read(Unknown Source)
2013-07-25 19:31:56 [iNFO] [sTDERR] at java.io.FilterInputStream.read(FilterInputStream.java:66)
2013-07-25 19:31:56 [iNFO] [sTDERR] at net.minecraft.network.packet.Packet.func_73272_a(Packet.java:144)
2013-07-25 19:31:56 [iNFO] [sTDERR] at net.minecraft.network.TcpConnection.func_74447_i(TcpConnection.java:327)
2013-07-25 19:31:56 [iNFO] [sTDERR] at net.minecraft.network.TcpConnection.func_74450_c(TcpConnection.java:547)
2013-07-25 19:31:56 [iNFO] [sTDERR] at net.minecraft.network.TcpReaderThread.run(SourceFile:94)
2013-07-25 19:31:56 [iNFO] [Minecraft-Server] dash16 lost connection: disconnect.genericReason
2013-07-25 19:31:56 [iNFO] [sTDOUT] Unloading Player: dash16
The first connection once an instance of this issue starts occurring will have disconnect.EndOfStream instead, but is otherwise identical.