Implementing a word-chain checker
Requirements
Number of words
Are you guaranteed to have at least 2 words?  If so, you could simplify your loop, by removing the first read; the loop will take care of the second &amp; subsequent words:
    String word2 = StdIn.readString();
    boolean truth = true;
    while (!StdIn.isEmpty())
    {
        String word1 = StdIn.readString();
        truth = truth &amp;&amp; checkWordCouple(word1,word2);
        word2 = word1; 
    }

Although now if given a single word, it will produce true.  This may be an improvement, but you’d need to check the exact requirements to be sure.
Word Length
Is HEAD, HEAL, TEA, TO a word chain?  Your program says it is!
What about HEAD, HEAL, HEALTHY?  That input causes your program to crash!
Your program should handle mismatched word length, unless the problem statement guarantees all inputs will be the same length.
Number of Differences
The problem description says:

In a word chain, adjacent words must differ in exactly one letter

but HEAD, HEAD, HEAD, HEAD is reported as &quot;true&quot;.  Clearly, counter &gt; 1 is not the correct &quot;false&quot; condition.  Borrowing Doi9t's suggestion, and further improving it, the correct line would read:
return counter == 1;

Self Documenting Code
You read word1, then word2, and compare the first to the second (let’s call that “forward”), then read a third into word1, and compare the third to the second (comparison in the “reverse” direction).  You are testing for one difference, so it works, but what if you were checking for one additional character?  By reversing the word order, you’d actually be testing for character removal!
Instead of word1 &amp; word2, maybe previous_word and next_word would help keep things clearer.
    String previous_word = StdIn.readString();
    boolean truth = true;
    while (!StdIn.isEmpty())
    {
        String next_word = StdIn.readString();
        truth = truth &amp;&amp; checkWordCouple(previous_word, next_word);
        previous_word = next_word; 
    }