depende de los tipos de campos en tu tabla... si has puesto NULL o NOT NULL.
lo comun que hago es darles NOT NULL y si no ingresan nada ps queda con comillas y si inserta.
para tu caso puedes solucionarlo con validaciones no ???
en vez de pasarle al query los $_POST, primero asiganalos en variables y luego pasalos.
Código PHP:
$var_txt_numero_guia = mysql_real_escape_string($_POST['txt_numero_guia']);
$var_txt_fecha_guia = mysql_real_escape_string($_POST['txt_fecha_guia']);
$var_rut_cliente = $rut_cliente[0];
$var_txt_5081_guia = mysql_real_escape_string($_POST['txt_5081_guia']);
$var_contrato = $_POST['contrato']
$var_id_relleno = $id_relleno[0];
$var_num_ticket = (empty($num_ticket)) ? NULL : $num_ticket;
$var_id_estado[0] = $id_estado[0];
$consulta= "INSERT INTO encabezado_guia_servicio (numero_guia_servicio,fecha_guia,rut_cliente,guia_5081,id_contrato_cliente,id_relleno_sanitario,numero_ticket_relleno,id_estado_guia ) VALUES ($var_txt_numero_guia, '$var_txt_fecha_guia', '$var_rut_cliente', $var_txt_5081_guia, '$var_contrato', $var_id_relleno, $var_num_ticket, $var_id_estado)";
espero este si te vaya bien.
suerte.