Firstly, I have to say that this answer was written in 2011, and all this changes over time (as browser interpreters optimize more and more things), so if you really want to know the current state of the world, you need to run tests on current browsers.
Run your own jsperf test on any version of IE. There you will see the constant difference between these two methods or many other old browsers. You apparently only ran it in Chrome, which is so fast and optimized that there is a slight difference between the two methods. In IE9 (which is most likely better than IE7 and IE8), a method that pre-caches length is 31% faster.
The jsperf test developed for this question gives quantitative results on this issue. In matters like this, you just need to go to jsperf to see what the real difference is, not so much speculation.
This shows the difference in the browsers I tried, which range from almost no difference to a pretty significant difference depending on the browser. There is practically no difference in Chrome. In IE9, saving the first length is almost 50% faster.
Now, does this speed difference to your scripts depend on the specific code. If you had a huge array that you often repeated, in some browsers there is a significant difference in the use of this form:
for (var i = 0, len = list.length; i < len; i++) {
In a slightly different test case, when using live pseudo-arrays returned by some DOM functions, there was still a difference in speed, but not (I expected the difference to be greater on DOM pseudo-living arrays, but it is not).
In practice, I tend to use a shorter version (less typing) when I don't think my code section is critically high speed and / or the array is small, and I would use a longer version that pre-caches if I consciously think of speed or an array huge, or I do a lot of iterations over the same array.
There are a couple of other programming reasons for pre-caching lengths. If you will add elements to the end of the array during the loop, and you do not want the loop to repeat over these newly added elements, you NEED to preload the length and only iterate over the original existing elements.
for (var i = 0, len = list.length; i < len; i++) { if (list[i] == "whatever") { list.push("something"); } }
Keep in mind that browsers are constantly evolving and adding more and more optimizations, so the optimization, which shows great benefit in 2011, can essentially be built into a more modern browser in the future, so manual coded optimization is no longer needed. So, if you are trying to optimize something for today's performance, you need to test in today's browsers, you cannot just rely on what you read, which may be several years old.