It's quite normal since you override your first condition by the
second (ie: same key in your array).
Either you code it this way :
'conditions' => array('Candidate.next_contact_date >= " . date('Y-
m=d', strtotime("-1 weeks")),
'Candidate.next_contact_date <= " . date('Y-
m=d' ,strtotime("+1 weeks")));
or
'conditions' => array('and' =>
array(array('Candidate.next_contact_date' => ">= " . date('Y-m=d' ,
strtotime("-1 weeks"))),
array('Candidate.next_contact_date' => "<= " .
date('Y-m=d' ,
strtotime("+1 weeks"))));
PS: you can also use "between".
hth