Props to @rosscartwright, @cassidydotdk, and @jammykam for getting us to the answer at lightning speed and for the helpful links.
The issue was a feature of Sitecore called AlwaysStripLanguage
that is controlled by a Sitecore Setting in the Language
group that controls the activation of a processor in the <preprocessRequest />
pipeline called Sitecore.Pipelines.PreprocessRequest.StripLanguage
.
Turns out that this component will not only remove URL prefixes it recognises as a language registered on the site (in /sitecore/system/Languages), but it will respond to any code that maps to a culture known to Windows.
For a list of the known culture codes check this ISO 639-2 Language Code List - you will notice that in our case the issue was the Cherokee language.
There is also an article on Sitecore Community - Prevent the Sitecore ASP.NET CMS from Interpreting URL Path Prefixes as Language Names that is a port of an old article by @JohnWest.
In our case we have replaced the default processor with a new one that only removes a language if it is configured in the list of languages for the site. Note that as it states in John's article, these processors run before there is a site context as the Site Resolver is in the httpRequestBegin
pipeline that runs later. Mileage will vary - build yourself a solution that suits your use case.
I will upload our solution to the Sitecore Marketplace in due course so if you're looking for it, have a poke around in there.