Hi Nikhil
if the packages are already installed on the old systems but not by client automation then there will be no install record. Software policy works by evaluating the computers history against the policy and then creating jobs for the violators.
Your old PC's will be violators as there is not install record. so the first solution is to get an install record in the db. You could achieve this by running a detection script or by running the sd_acmd addinstallrecord command on each PC. Once the install history is populated they will no longer be violators and thus no job will be created.
The second option is to create a query group to discover those computers that have recently been built and apply the policy to this group only for example if you are building the new computers by OSIM then you could use a query to detect computers where the current state exists from a specified time frame onwards
eg to find all computers with a current state since 1st December 2013
SELECT * FROM csm_v_computer WHERE csm_v_computer.uuid in (select distinct c.uuid from csm_object c,csm_property c_pr,csm_link l_bc, csm_object bc,csm_v_property bc_pr,csm_property bc_bs where c.class=102 and l_bc.parent = c.id and l_bc.child = bc.id and bc.class = 1004 and bc_bs.object = bc.id and bc_bs.name = 'bootstatus' and bc_bs.value='1000' and bc_pr.object = bc.id and bc_pr.name = 'configstatetime' and bc_pr.i_value >= 1385874000)
The Query designer can help you create this
Expand queries and right click on OSIM Computers - select new
expand OSIM Configurations - Current OS Installation
Select Current state exist since
define the operator as >=
define the date in mm/dd/yyyy
hope this helps
Rich