When you choose no intercept, you are essentially forcing it to zero. Therefore, you are saying "when my x's are all 0, I expect my Y to be 0." That is the only situation that you should use that option.
The reason you get high VIF's in a no-intercept situation, is because VIF is a ratio that is related to R2. And when you choose no intercept, you can get much higher R2 values. Why? Thats a long one, but here's a great article on it.
Now that you've learned why R2 goes up, look back at the VIF equation: VIF = 1 / (1 - R2) So its easy to see that as VIF goes up, the denominator goes down, which makes overall VIF go up. 🙂
tl;dr Using noint is for a specific scenario, which R2 is measured differently and is often higher. Since VIF is related to R2, it also goes up.
... View more