The term Smart Client is probably the most often misused of the three, and there always seems to be a little bit of confusion as to where Thick stops and Smart begins.
But, yet again, The Architecture Journal (Issue 14, p10) guides us with a simple and helpful summary. Some will no doubt disagree (since the issue is focused on connectivity and mobile devices).
I've summarised them here:
Thin Client (Online Application): Client software, normally browser based, where connectivity is required.
Thick Client (Offline Application): Client software, installed locally, where connectivity is not required. All required data is local. (Synchronising of data at some point may be provided)
Smart Client (Occasionally Connected Application): Client software, installed locally, where connectivity is required regularly but not continuously.
This is a helpful guide, but of course is still open to debate.
The key point is what the term 'required' means? The common answer in my experience is that 'required' means 'required to provide a good user experience'.
Thus, is a program like Outlook a Thick Client or a Smart Client application? I usually say it is both, since it will work fine on its own (eg for Contacts, Tasks, Calendar) and yet it requires a regular connection for others (eg Email, Meeting requests). If a good user experience for you means instantaneous email Send/Receive then Outlook is a Smart Client, but if you only need to check email once a day or every few days then it is a Thick Client.