Generally, if you have WMS with different projections, you need to deal with this at the server level. Reprojecting tiles on the client will be slow, and unless they have similar projection properties, will probably look awful too (as reprojection usually involves resampling and rotation). If you control the generation of the tiles on the server, then you can reproject at source to a common projection, such as 900913 (geoserver does this, for example).

If you want to reproject vectors, as distinct from rasters, then you can do this client side, but you will probably need to add the proj4js library, as openlayers only natively supports 900913 and 4326. See the example here: http://openlayers.org/dev/examples/using-proj4js.html Also, see the userguide on the proj4js page to see how it is done. http://trac.osgeo.org/
proj4js/