Cancel a sprint? Been there, done that.
Being a slave to a method is never good, and sometimes, despite all the planning, things can go awry. Really awry. When that happens the sensible thing to do is get off the train before it plunges over the cliff. That way everyone can regroup, calmly analyze the situation, identify what went wrong, discuss ways to avoid such a thing happening again, and start anew. (Assuming it was avoidable - sometimes the wide world intervenes. Hacks, infrastructure disasters, clients going south etc etc.)
More commonly, however, I've seen a single team have their sprint completely re-arranged. Typically because team members were pulled to deal with an emergency/something high-profile cropped up. In this instance stories were re-selected for the remaining team, or re-written (ie. broken up) to better fit the remaining expertise.
Bottom line - sprints are a tool, a means to an end. Sometimes, for a myriad of reasons, they wont get you there.