Given all the recent flamage over this issue, probably I should have a separate "Porting to 2.3" section that summarizes everything to watch out for.
That section might start by noting that anything that prints Boolean results (e.g. ``print a==b'') or converts them to strings might be affected by the new bool values that are now often returned as Boolean results.
Skimming Misc/NEWS might be the most efficient way to find out other things that could affect old code; e.g. I read that xrange's deprecated features are now removed, assert no longer tests for __debug__, an obscure change to __new__ and __init__, a change to pickling objects with __slots__, and a restriction of sys.exit() to a single argument (sure to bite someone). Library: pwd, grp and resource return enhanced tuples; a change in ftplib.retrlines. At the C API level (do you cover that?) the pymalloc changes probably warrant mention.
And more, probably.
One question is how spin this. Listing a long series of incompatibilities presents the image of a language that has many gratuitous incompatible changes -- which is not true and the opposite of the message we want to convey.
--Guido van Rossum (home page: http://www.python.org/~guido/)