I was having this same problem when I was swatching for my knee socks. I started off with a substitute yarn, and my row gauge was way too big. The pattern for the leg isn't knit by inches but had to have a certain number of rows, and I didn't want to end up with thigh highs. I switched to the yarn it called for, and my row gauge was closer, but not right on. So I knit less ribbing at the top than it called for. So, sometimes it's the yarn you are using, but also, I guess some people just knit shorter rows
But, as long as the pattern calls for measuring your rows by inches and not counting row numbers, you should be fine.
