When a Managed Delivery Policy runs on a client, the detection check sees the software and sets the policy status to compliant. When looking at the server in reports, the policy shows as non-compliant for that computer.
In these versions of Software Management the only time the status of the policy will be sent is when it changes. When the transmission or processing of the NSE from the client is interrupted or missed, the wrong status will remain on the server.
Be sure to set the schedule of the policy to run periodically to check for compliance. This can be done by setting the schedule to repeat, daily or weekly.
In 8.1 the process has been revised to periodically send the status up to the server, even if it hasn't changed. This will resolve the issue.
If you cannot upgrade, a script can be created to target specific policies, or all policies if it is not known which policies are affected. The below registry keys can be altered to force the NSE status to be sent.
(GUID will be specific for the policy in question)
Change the value to something other than 0, 3 or 6 to force the agent to resend status. 8 works