I actually do know someone who was not able to get a CS degree because of 'cheating'. His story was that he was working in a group, got verbal clearance from his professor that this kind of collaboration was acceptable, and when that auto-cheating-analysis tool flagged each group members work, the professor claimed not to have said that and was uninterested in fixing the problem.
So, this absolutely does happen. OTOH, I've never personally had any experience with 'borderline' cases. There were enough cut-and-dried cases to keep me busy.
I'm sorry you were unfairly punished.
(I don't fault the humanities professor, he may have grown up in a culture where it's acceptable to be full of shit.)
Example: I had a friend who had an interview for company XYZ, "Write a program that clicks the first link in a wikipedia entry and exits when you reach the philosophy page (implement in the language of your choice). You have 15 mins"...
My friend was a really hard working, intelligent, and honest guy and he could not do it... i doubt cheaters could do it cold.
https://gist.github.com/eli173/c089c27db9c1302fe4e003716b402...
Perhaps I am the kind of person they are trying to avoid, but I did this in a bit less than an hour. I am very ignorant of the Python library ecosystem, so if I had known the request library better and if I knew an html parsing library, I may have been able to complete this in the time limit. I also suspect there are a few cases which break my solution.
Beautiful soup https://pypi.python.org/pypi/beautifulsoup4
The best part is you could cap it to 5 levels of recursion before it runs away.
Still no way I'd have that in 15 minutes haha. I could describe it though!