Interestingly, this was not a problem with the version of argparse than I has packaged (1.2.1), but rather with the way I had packaged it.
I put an __init__.py file along with argparse.py into a folder and simply added from argparse import * into __init.py__. This is where the problem lies because although argparse defines a __version__ attribute, it also defines an __all__ attribute which did not include __version__. So I added __version__ to the __all__ attribute list and now the ipython version check is OK. I'm wondering if this is something I should tell the argparse developers or am I just using it in a funny way? Cheers, Mat