Just sorted a problem where a client had a problem with her 301 redirects not working. When browsers were hitting the URL to be redirected, the old page was being served rather than being redirected to the new website.
A quick logon to her WordPress site showed that the 301 redirects were setup using the WordPress Redirect Plugin by John Godley. Other redirects were working as normal however new ones just didnt seem to work.
Further investigation showed that the WordPress site also had a cache plugin installed which was (quite rightly) serving the old pages rather than those with the 301 redirects appended.
A quick clear of the cache fixed the problem and the 301 redirects worked fine.