funzionare funziona, ma è corretto?
direi proprio di no, in quel modo vai a settare sempre il cookie

codice:
<script type = "text/javascript">
$(document).ready(function(){
  if(!$.cookie("promo")){
   //creo cookie
   $.cookie("promo", "vista", { expires:7, path: '/'});
   tb_show("Messaggio","promo.jpg?height=300&width=300", "");
  }
}
</script>