Mira, te voy a pasar en limpio para que consideres algo:
Código MySQL:
Ver original (Usuario.Correo
LIKE %$correo
%) ((Nombre
LIKE '%$contacto%') AND (Apellidos
LIKE '%$a_contacto%') OR (Tel2
LIKE '%$telefonos%')) AND ((Direccion
LIKE '%$direccion%') OR (Municipio
LIKE '%$direccion%')) AND (Empleados
LIKE '%$empleados%') AND (Capacidad
LIKE '%$capacidad%') AND (ClientesMexico
LIKE '%$mexico%') AND (ClientesExtranjero
LIKE '%$extranjero%') AND (SistemaCalidad
LIKE '%$h_calidad%') OR (ISO20000
LIKE '%$c_calidad%') OR (ISO14000
LIKE '%$c_calidad%') OR (OSHA
LIKE '%$c_calidad%'))
Si lo meditas, con semejante cantidad de condiciones
obligatorias (las opcionales son casi irrelevantes), lo más probable es que tengas problemas para encontrar registros que las cumplan todas, más que problemas con el JOIN.
En cualquier caso, ese tipo de JOIN (la coma) sólo funciona bien si el campo relacional en ambas tablas lleva exactamente le mismo nombre, sin lo cual puede darte un producto cartesiano o nulo.
Yo más pensaría que no tienes registros que cumplan todo eso...