It sounds like you are looking for a "live" address verification solution as opposed to a batch processing or "scrubbing" solution.
As for the "live" address verification services, you are correct that USPS (US Postal Service) requires you to use their delivery services if you use their API. UPS (United Parcel Service) is the same way. Here is a quote from their TOS (Terms Of Service)
"The UPS Systems and Information are to be used solely by Access User in connection with shipments tendered by, to or for Access User to UPS for delivery and for no other purpose."
There are quite a few different service providers available that license the USPS data and then allow you to use it WITHOUT the stated requirements. The USPS API is very complex and unless you are going to be using it A LOT, it might not be worth the investment to get it figured out.
In the interest of full disclosure, I'm the founder of SmartyStreets, we have an address verification API called LiveAddress.