OO.o 3.0 is supposed to have OOXML import included (it's a separate extension in 2.x), so using the UNO bindings or possibly some command-line flags, OpenOffice.org may be able to do some justice to .docx.
But if all you want is the text from an OOXML file, formatting be damned, it's actually straightforward to code (just like ODF):
1. Unzip the file to get its component XML files
2. Read content.xml (or whatever the OOXML equivalent is)
3. Parse the XML and extract the text content of every node (e.g. make a list of the strings).
xlhtml will work for .xls files. I'm not aware of one utility that will read out the text reliably from all MS formats though. I've been pondering this same problem as of late and have been thinking about a virtual machine approach.
have a conversion "service" running in a Windows VM that has the latest office installed. Use something like Python with the pywin32 module to extract text via COM.
Advantage there is you don't have to worry about your thing breaking with new releases of Office, you just upgrade to the latest version.
Disadvantage obviously, the overhead of the VM cost of a windows and office license and need to role back the vm snapshot from time to time if you get any viruses.
If you look at apache POI, they have libraries for handling doc, ppt, xls, etc. There's also a poi-like toolkit for handling the new docx, pptx, etc file formats somewhere, but I forgot where. They're java libraries, but it's pretty easy to write some simple stand-alone conversion tools using them. If you need to convert a ton of files at a time and the JVM startup is killing you, you can try nailgun (http://www.martiansoftware.com/nailgun/).