Scott -
On second glance, here's a better idea. Concatenate a space (" ") manually to the beginning of the title before you do the REPLACE, and then put a space before each article in the REPLACE call. The new query is:
select title, subtitle, replace(replace(replace(concat(" ", title), " An ", ""), " A ", ""), " The ", "") as newField from books order by newField;
That fixes a couple problems. My main concern was the very first word, which is the only standalone article that wouldn't have a space before it. Now that it's manually put there, you don't have to worry about mid-word replacements.
Now you need the REPLACE to be case-insensitive, to get the lower-case articles, too (which is the correct way for them to appear, right?). Just LCASE the title in the beginning to do that, and make all the articles lower-case as well.
FINALLY, you have:
select title, subtitle, replace(replace(replace(concat(" ", lcase(title)), " an ", ""), " a ", ""), " the ", "") as newField from books order by newField;
-Jeremy