In Microsoft Outlook 2007 the spell checker does check the content of the subject line. It does not do this as you type, so you don't get the squiggly lines under the misspelled words. You can configure Outlook to check spelling before you send the message.
- Select Tools > Options
- Click the Spelling tab
- Put a tick in the box Always check spelling before sending
I expect this will work for other versions of Outlook. It did work in Outlook 2003.
Yahoo mail does not have a spell checker. Firefox will check the spelling of text typed into fields with more than one line of text (see this page). The subject line in a Yahoo mail form appears to be a single line of text, so Firefox doesn't check it. The body of the message is multiple lines, so Firefox does check it.
Update (February 14, 2016)
Firefox can spell check single line text fields. It's just not the default. To change the setting you will have to edit the configuration as follows.
- Open a new tab
- In the address bar type about:config and press Enter.
- Click the I'll be careful, I promise button.
- In the Search box type layout.spellcheckdefault
- Double click layout.spellcheckdefault in the list of preferences shown in the search results.
- Set the value to 2.
The possible values for layout.spellcheckdefault are described here.