I'm not sure why `rubyntlm` v0.4.0 doesn't require its own version constant. It was moved there pretty recently and is [required explicitly by the gemspec](https://github.com/WinRb/rubyntlm/blob/master/rubyntlm.gemspec#L1).

The guard against the constant already defined is to make sure this also works with `rubyntlm` v0.3.*, which defines VERSION in net/ntlm and does not have a net/ntlm/version file, so this require would fail without the guard in 0.3.*.

I don't know if I like this style either, but since it was broken in 0.4.0 this was a simple solution to work with both versions.