guarda che il fatto che sia un campo di testo non significa nulla.
Tu devi specificare il nome della tabella che deve considerare nel JOIN e non il tipo di dato contenuto in esso. Con la parola JOIN dici alla SELECT di confrontare i CAMPI DELLE TABELLE.

Togli quegli apici, non servono a niente:
codice:
SELECT clienti.ragione_sociale, clienti.contatore,
       clienti.cod_contratto1 
FROM contratti INNER JOIN clienti 
  ON contratti.cod_cliente = clienti.contatore 
ORDER BY clienti.ragione_sociale