¿Qué error te da? Por otro lado, prueba a hacer echo a la variable $criterio, en plan:
Código PHP:
$criterio = "SELECT * FROM bd.contratos WHERE cif=".$id;
$criterio .= " OR idcontrato like '%".$txt_criterio."%' or cif like '%".$txt_criterio."%' or idservicio like '%".$txt_criterio."%' or fAlta like '%".$txt_criterio."%' or fBaja like '%".$txt_criterio."%' or Horas like '%".$txt_criterio."%'";
echo $criterio;
die();
Y mete la SQL en un monitor de SQL (phpmyadmin, por ejemplo), y si da un error de SQL es que está mal escrita. Postéala aquí por si acaso. Piensa que el operador LIKE no se puede usar para todos los tipos de datos, comprueba los tipos de datos de las columnas que estás usando para el WHERE.