My recent experience: an Arduino connected to (and powered by) PC via USB, and only the (-) lead of a passive power supply connected to Arduino's ground, no other connection. Every time the PSU was plugged or unplugged on the wall, communication was lost. Removing the (-) lead there was no problem.
After going crazy with coiling the USB cable around a ferrite toroid, inserting uH and mH inductors in series with the (-), etc. the only cure was to add copper braid around the USB cable (had to cut one end, transplant the shield from a coax, resolder the connector), soldered to BOTH connectors shells.