There are a couple of things that might be causing confusion.
Only the iPhone 3G (and newer) has a GPS chipset - the original model didn't.
The location software in most mobile phones uses the Javame location services API which lets you pick a variety of ways to get the position (GPS, nearest cell tower, cell tower triangulation etc) depending on what hardware your phone has, what services your provider charges for and what security settings permit.
GPS uses a lot of battery power and can be slow to get an initial position - so you don't necessarily want to use GPS if your application is just looking up which city you are in for a weather forecast.
The iPhone3G also uses assisted-GPS where the initial position is actually found by cell tower triangulation and then that location is used as a starting point for the GPS solution. This greatly improves the startup time and reduces the amount of CPU and so battery power to get a fix.
One big leap forward - the iPhone Javascript API now includes GPS location so you can easily get a position form a web app.
But remember the iPhone (unlike other smartphones) can only run one app at a time - so if you have a GPS tracking application you can't use the phone for anything else while it's running