NASA contracted to launch the Curiosity rover on the Atlas V rocket, for example, so how is this different? Well, the Atlas V wasn't developed commercially, it was developed as part of the EELV program. This was a USAF program which sought to develop launch vehicles to carry military payloads into orbit in the future. Boeing and Lockheed Martin developed those launch vehicles (which became the Delta IV and Atlas V) but government had a lot of say on the design of the vehicles and ultimately paid for most of the development cost of the vehicles. This is different from SpaceX's example where they developed their own launcher from scratch to their own design, specs, and manufacturing and management processes, etc.
Also, if you look at other NASA launches in recent history the contrast is even stronger. NASA drove and funded development of the Delta II, the Shuttle, the Saturn V, etc, etc.
Additionally, operations for the spacecraft component, the Dragon, is being handled by SpaceX themselves and not by NASA, which is a new thing, especially in the realm of manned spaceflight.
NASA isn't just buying launches, nor are they just buying Dragon spacecraft and launches, they are buying cargo delivered to ISS.