I don't know why /usr/lib/python2.5/site-packages is earlier than the Twisted egg. Setuptools normally puts all .egg's earlier on the sys.path earlier than all non-egg entries (which is the cause of the most widely hated setuptools issue: setuptools issue #53 -- respect the PYTHONPATH).
setuptools does not always put .egg entries earlier than non-egg entries. If a non-egg is needed to satisfy a dependency and it is in a shared package directory (such as a site-packages directory, either the global one or one in a virtualenv), then other packages from that directory can end up being found before the ones required by Tahoe, even when setuptools thinks theose requirements have been correctly satisfied (see ticket:1246#comment:6). This behaviour is nondeterministic.