Yes it is possible
UDP doesn't have guaranteed delivery like TCP. When a package is corrupt, it's gone! You can either use TCP or build your own protocol to be sure every packet is receiven (although the sliding window techniques from TCP should do that just fine if I remember correctly)
In your local network the switches probably won't drop packets. That's why you wont miss anything there. On the internet, some links can have heavy usage so some packets are dropped.
It's not a Visual C or Winsock problem. Even a good and stable Linux system would probably have the same problem ;-)
Antharax