1. A method of enforcing a policy on a client device, comprising: receiving, in a client device, a policy definition from a network, wherein the policy definition is a generic definition that is applicable to disparate device types having different hardware and software platforms; evaluating the received policy definition in a client policy engine located on the client device by comparing the policy definition to use or functionality available on the client device, wherein the evaluating includes determining a mode in which a user is using the client device; and enforcing the policy by modifying the functionality available on the client device based on the evaluation, including the mode, wherein the client policy engine adapts the generic policy definition to a specific platform on the client device.