GeoIP tells you at best what city someone is in, and even then, for smaller towns, will usually report the nearest large city, which could be quite a ways a way. Not to mention it's often even just flat-out wrong. VPNs and other things distort where you are. Sometimes a website might need (or at least think it needs) correct, fine-grained location information.
I do suspect that most websites that ask for location information could do fine with GeoIP, but that doesn't mean there isn't any use for more reliable, fine-grained location data.