When I've been faced with a similar problem, I have also used the difference method that Steve suggested. However, I don't rely on differencing the actual content of the image because of possible exposure, contrast, color differences. Instead, I manually add a few fiducial markers (
http://en.wikipedia.org/wiki/Fiduciary_marker, aka, landmarks) to each image and then look for differences in the well defined markers.
Obviously, I don't want to deface the actual images, so I add the markers to an empty layer above each of the two images, and then group those layers with their respective images. I then nudge, rotate, stretch, etc. one group relative to the other. When I'm done, I just turn off the two marker layers.
BTW, when trying to line them up, I make full use of the ability to drag the center of rotation of a layer to any arbitrary position on that layer, such as the location of one of the landmarks. This makes it a lot easier to separate translation and scaling changes from rotational changes.
Another tip: As you pointed out, pincushion, barrel and other geometric lens distortion differences between the two images are another source of problems. If there are any corresponding places near the edges of the frames, I'll put some fiducial markers out there, as well as right on the subject. I'll first move, rotate, scale, skew the images to get good alignment of the markers on or near the subject, then I'll apply a distortion correction program to the result of that process to improve the alignment of the markers near the edge of the frame. The results are usually quite good with one pass, but sometimes you then have to iterate and touch up the overlap of the central markers. The distortion program I use is:
http://powerretouche.com/Lens-distortion_plugin_tutorial.htm.
Finally, I should mention that I have a couple of HDR programs that have auto-alignment features. I've tried these for this sort of task. Sometimes, they work, other times they don't. I eventually gave up on them and reverted back to the old-fashioned manual method -- it's a bit more work, but you are guaranteed as good a result as your source images will allow.
HTH,
Tom M