Forum Moderators: open
I figured the best method would be to create an asp page (index.asp for example) which I used as the nominal address for the page and then have this page determine the browser capabilities and serve up the correct page (version3.asp or version4.asp).
However I understand that this is known as cloaking and is frowned upon by many search engines so what exactly should I do to make the viewing experience as easy as possible for humans without upseting the search engines in the process?
The key in the case you describe is to avoid serving different content to different browsers, if you keep to serving the same content but restrict yourself to the attributes supported by the version of browser you are targetting there should be no problem.
Also you used the word redirection, I'm sure you didn't mean that in the meta refresh sense, but just for others that come along to read this, ensure that no redirection takes place. Read the content, decide server side what type of browser you are serving to, and put out the appropriate page for that browser.
This technique is used by just about every major site on the Net including search engines, they often target browsers, geography, etc., but keep the content served consistent.