Edit: Well, ###. Couldn't you have typed six minutes faster?
I'll let the following stand anyway.
:: bzzt! danger! bzzt! danger! ::
You've got mod_rewrite and mod_alias in the same htaccess. This can be perilous. Take any rules using mod_alias (Redirect by that name) and translate them to mod_rewrite form.
The bad news is that I don't see any way that this would affect your present situation.
Is the redirect to google just for experimental purposes so you can see things happening in the browser? You can achieve the same result by redirecting to a nonsense page like "foobar.html". Your screen will show your 404 page, but the browser's address bar will show example.com/foobar.html. Try it, anyway. It's remotely possible that some new server setting is interfering with off-site redirects. (It shouldn't, of course, but that's a separate problem once you've got it diagnosed.)
all my redirects are creating 404 errors in all my browsers
It would be a ### of a lot more worrying if there were errors in some browsers but not all of them. The only time you'll see browser-specific behavior is if you repeat a request that was previously redirected; then the browser may remember the redirect and won't try a fresh request.
When did the problem start? On shared hosting you may not have access to many days' worth of raw logs. (Mine defaults to 3; I changed it to 15 to give me more time to remember to get everything downloaded.)
The rules you've got are perfectly innocuous except for minor points like
(a) mixing mod_alias and mod_rewrite
(b) the three rules are in the precise opposite order to what they should be: you should go from individual page redirects, to redirects following a pattern, and then the "index.html" redirect and the domain-name canonicalization should be the very last two rules
(c) the form ^example.com is imperfect in several ways; it should ideally be
!^(www\.example\.com)?$
(d) the expression .* should never be used in mid-pattern if you can possibly help it. If you can't get by with a simple
%{THE_REQUEST} index\.html
then use
/([^/]+/)*index\.html
But all of this is minor spit-and-polish that should not prevent anything from working.
I've made no real changes, but
Mm, yes, it's the "but" that causes alarm.
Do you realize that you never explained the 404 errors? Was that purely a reference to requests for a nonexistent "about.html"?
Did mod_alias (Redirect by that name) work at some time in the past? It's not likely your host has changed Override settings. Those govern behaviors rather than specific modules and I don't think there's any way you could use mod_rewrite while not being able to use mod_alias. And if the server's mod_alias was broken, I think even GoDaddy would tell you.