It happens only some of the time. Apparently, there are 2 possible ways to describe partitions: C/H/S which is cylinder/head/sector and LBA which I think stands for Logical Block Addressing. One of them is limited in the size of disk it could describe (probably like a 16-bit vs. 32-bit thing) so they went to the other system. The 2.6 kernel in some situations mis-interprets the data from one set and and then rewrites the partition table with different parameters. That confuses Windows. The instructions in the link you gave above tell how to get the parameters back to the ones Windows is happy with. Seems like Linux is happy either way.
I'm also not clear on when it happens and when it does not, but I think it happens with older machines and not so much with newer machines, or with older versions of Windows and not so much with newer versions of Windows. I saw somewhere instructions to switch BIOS settings from LBA off to on or vice versa (don't remember very well, sorry) as a way to avoid the issue, but I think our machines are locked into LBA on. And I think that is the ok way, but I'm not sure.