I know there are some libraries for editing excel files but is there anything for editing msword 97/2000/2003 .doc files in python? Ideally I'd like to make some minor changes to the formatting of the text based on the contents of the text. A really trivial example would be highlighting every word starting with a capital.
The PyWin32 library allows you to access COM objects from Python, including all of the various Office COM APIs. I won't claim it's easy to use, but it does work.
If platform independence is important, then I'd recommend using the OpenOffice API either through BASIC or Python. OpenOffice can also run in headless mode, without a GUI, so you can automate it for batch jobs. These links might be helpful:
It's definitely more involved than importing a module and doing a string replace, but OpenOffice is probably the best free .doc reader, that you can hook into.
Why not look at using python-uno to load the document into OpenOffice and manipulate it using the UNO interface. There is some example code on the site I just linked to which can get you started.
Per this SO post, I found out about jXLS, which uses Apache POI. POI has many subcomponents, including HWPF:
HWPF is our port of the Microsoft Word 97 file format to pure Java. It supports read, and limited write capabilities. Please see the HWPF project page for more information. This component is in the early stages of development. It can already read and write simple files.
Since this is a Java library, it could be scripted using Jython. I don't know how good the writing capabilities are yet, but please post a comment back if it helps.