This sometimes frustrates me about Scrum and Agile in general. Every thing seems to always be broken down to a very binary level - the answer is either black or white. However, more so when working in a large corporation there are politics and general business rules that put some situations in a grey area. It's at these times I get frustrated the most - I reach out for help only getting a cliche black and white response that isn't very helpful.
One programmer I work with once compared Agile to High School Physics - all of the problems are solved in a vacuum and the solutions don't work when you get to the real world. I get his point - often large corporations aren't perfectly aligned to be agile and you need to make do. (I have a draft topic with real quotes from programmer about agile
I also agree with @BrettM on the fact that everyone seems to frequently get caught up in the details. Isn't the goal of all of this to adapt to change and deliver incremental value? If the team is accomplishing that, who cares if they called their first Sprint 0 or 1? (most programmers start with 0 anyway )
I used a Sprint 0 in June with a new client and it worked out great! We did nothing different - the only difference was we were trying to get a baseline on velocity and I was teaching the team the different ceremonies as we went. Once we finished it, we had a handful of tickets completed (setup the GitHub repo, work on the first set of UI mock ups), a base velocity to roll into Sprint 1 with, and the team was comfortable jumping in and committing to a real batch of work for Sprint 1. We also bill by the Sprint - so this was kind of a freebie for them to see how things went and what to expect.
Since then we've done about 5 or 6 Sprints, all ending with a incremental piece of software that could have shipped to production.