Yes I think that is a good idea also but I guess its up to you!

Anyways here is a way to do it with php:
Ok... Php cannot detect whether or not frames are loaded, so you will still have to use javascript to do that.
1) You can use this code on the competitions page:
<script language="JavaScript">
if(!(parent.frames.length > 0))
{
window.location.href = "http://www.safariquip.co.uk/vivid/frames.html?url="+ window.location.href;
}
</script>
It should will redirect you back to your frameset page but will have ?url=http://www.safariquip.co.uk/vivid/pages/comp/comp.html
on the end of it.
2) now you will have to change your frames page (currently frames.html) to frames.php
3) Then you will need to replace this:
<FRAMESET ROWS="*" COLS="152,*" FRAMEBORDER="NO" BORDER="0" FRAMESPACING="0">
<FRAME NAME="menu" SCROLLING="NO" NORESIZE="NORESIZE" SRC="menu/menu.html"
MARGINWIDTH="0" MARGINHEIGHT="0" FRAMEBORDER="NO">
<FRAMESET ROWS="76,*" FRAMEBORDER="NO" BORDER="0" FRAMESPACING="0">
<FRAME NAME="banner" NORESIZE="NORESIZE" SCROLLING="NO"
SRC="banners/check.html" MARGINWIDTH="0" MARGINHEIGHT="0" FRAMEBORDER="NO">
<FRAME NAME="content" SRC="pages/front/front.html"
MARGINWIDTH="0" MARGINHEIGHT="0" FRAMEBORDER="NO">
</FRAMESET>
</FRAMESET>
With this:
<?php if(!$url) { $url = 'pages/front/front.html'; } ?>
<FRAMESET ROWS="*" COLS="152,*" FRAMEBORDER="NO" BORDER="0" FRAMESPACING="0">
<FRAME NAME="menu" SCROLLING="NO" NORESIZE="NORESIZE" SRC="menu/menu.html"
MARGINWIDTH="0" MARGINHEIGHT="0" FRAMEBORDER="NO">
<FRAMESET ROWS="76,*" FRAMEBORDER="NO" BORDER="0" FRAMESPACING="0">
<FRAME NAME="banner" NORESIZE="NORESIZE" SCROLLING="NO"
SRC="banners/check.html" MARGINWIDTH="0" MARGINHEIGHT="0" FRAMEBORDER="NO">
<FRAME NAME="content" SRC="
<?php echo($url); ?>"
MARGINWIDTH="0" MARGINHEIGHT="0" FRAMEBORDER="NO">
</FRAMESET>
</FRAMESET>
I really hope this works out for you!
-dk