That's what mock objects are for. You mock the object that would normally call the remote system, have it artificially fail, and use that to test clients of that object.
OK, it ain't perfect. Things usually doesn't fail in a uniformaly distributed way and you can't be sure you'll see a different kind of fail on production, but it sounds useful(yeah, and pretty cool) nonetheless.