Well, it depends. On a lot of factors too, everything from the hardware medium to the filesystem.
In practise, howver, I've found fseek() operations fast for hard drive files of any size when in read mode. I expect its more than likely it simply interrogates the underlying filesystem at the implementation level to find out the size rather than physically looking for the end of the file ;-)
(that's your hint to do the same, btw)