Sono le 3 e mezza, non so se questo tentativo di riscrittura del codice che ho fatto risolverà il problema, ma proviamo comunque.
Quello che cambia è il codice dall'inclusione del file per la connessione al db fino all'esecuzione della query (esclusi).
Codice PHP:
// Escape dei campi del form
$regioni = mysql_real_escape_string($_REQUEST['provincia']);
$provincia = mysql_real_escape_string($_REQUEST['provincia']);
// Determiniamo i campi della tabella che dovranno essere estratti, basandoci sulle checkbox selezionate.
// Se non è selezionata alcuna checkbox, la ricerca avverrà su tutti i campi
$expr_select = count($_REQUEST['servizio']) ? implode(', ', $_REQUEST['servizio']) : '*';
// Costruiamo la clausola WHERE solo se è selezionata una provincia
if ($provincia != 'tutte')
$condizione_query = "WHERE regioneazienda = '$regioni' AND provincia = '$provincia'";
// Concateniamo le stringhe e otteniamo la nostra query
$query = "SELECT $expr_select FROM $table02 $condizione_query";
Spiego ciò che ho fatto così in caso di dubbi hai già un chiarimento 
Non ho usato le parentesi graffe con il costrutto if perché è associata una sola istruzione di codice...per renderlo più leggero possibile 
Per selezionare i campi della tabella tramite le checkbox, sfruttiamo il fatto che tutto finisce in un array.
$_REQUEST['servizio'] sarà comunque un array, quindi il controllo deve verificare quanti elementi contiene.
Se count() restituisce un numero maggiore di 0 (quindi TRUE) allora almeno una checkbox è selezionata; viceversa, con la funzione implode() raggruppiamo i valori dell'array in un'unica stringa, inserendo ciò che gli abbiamo passato (la virgola) tra un valore dell'array e l'altro. Se il valore è uno solo non sarà inserita alcuna virgola quindi siamo sicuri che non saranno generati errori durante l'esecuzione della query.
Infine, se è selezionata anche la provincia, viene accodata alla query una condizione WHERE.
Fammi sapere se funziona, ciao ciao!