Nine times out of ten, the router administrator has forgotten to add the ip nat outside or ip nat inside command to the router interfaces. In fact, this is almost always the problem! The next most frequent mistakes include the wrong ACL and a misspelled pool name (it is case sensitive).
You can debug NAT translations on the router by using the debug ip nat [detailed] command, and you can view the NAT pool with the show ip nat translations command.