I think the best way to dodge this kind of stuff is to augment the TCP carrier protocol.
TCP means transmission control protocol, and it arranges for sequencing and proper ordinal labeling of packets. This means that as you talk into Skype and you say "The quick brown fox jumped over the lazy fistful," that gets broken apart into thousands and thousands of TCP packets. They are then routed using a bunch of other protocols, and the ultimate listening computer doesn't do anything with these packets unless they are received in the correct sequence. If our fistful sentence above were to only consist of 9 packets (1 per word) rather than the thousands of packets it would actually consist of, it's listening for packet 1 and won't do anything with packet 2 until it first confirms that packet 1 arrived.
In the event that, say, packet 3 is lost along the way due to a routing or switching fluke, the recipient computer says "hey, send me that again!" because it knows it was supposed to receive 9 packets but lost one, only getting 8 of them and missing #3.
It would be lovely if TCP were more latency tolerant to a few hundred milliseconds, and some enterprising TOR-loving person out there created a route-hopping or proxy-hopping VoIP app that sent your packets to their ultimate destination, but used constantly dynamically changing routes to get there. That way, the Narus box in Los Angeles may get packets 1, 2 and 9 and think fistful is a great track star or something... and the Narus box in Chicago gets packets 3, 7 and 8 and can't make anything of it, and the Narus box in Virginia gets packets 4, 5 and 6 and also get gibberish from it. But the end recipient still gets their correct message.