Here's my method (which turned out to be basically a more reliable and pythonic version of berdario's method). It only disables writing to .python_history, but not reading from it if it exists, or appending new lines to the current instance's history. I recommend saving it as site-packages/sitecustomize.py, because site is the module that both writes to .python_history and imports sitecustomize if it exists, although naming it something else and pointing to it with PYTHONSTARTUP works too.
edit: see Colin Watson's answer
import sys
oldhook = getattr(sys, '__interactivehook__', None)
def newhook():
import readline, atexit
oldhook()
atexit.unregister(readline.write_history_file)
if oldhook: sys.__interactivehook__ = newhook