I was going to suggest number 1, but you really need the description to appear when the user types LOOK.
A better way might be to modify OnEnterRoom, like this:
<function name="OnEnterRoom" parameters="oldRoom"><![CDATA[
game.displayroomdescriptiononstart = false
if (IsDefined("oldRoom")) {
if (oldRoom <> null) {
if (HasScript(oldRoom, "onexit")) {
do (oldRoom, "onexit")
}
}
}
on ready {
if ((not GetBoolean(player.parent, "visited")) and HasScript(player.parent, "beforefirstenter")) {
do (player.parent, "beforefirstenter")
}
on ready {
if (HasScript(player.parent, "beforeenter")) {
do (player.parent, "beforeenter")
}
on ready {
request (UpdateLocation, CapFirst(GetDisplayName(player.parent)))
roomFrameExists = false
if (HasString(player.parent, "picture")) {
if (LengthOf(player.parent.picture) > 0) {
roomFrameExists = true
SetFramePicture (player.parent.picture)
}
}
if (game.clearframe and not roomFrameExists) {
ClearFramePicture
}
if (not GetBoolean(player.parent, "visited")) {
ShowRoomDescription
}
if ((not GetBoolean(player.parent, "visited")) and HasScript(player.parent, "firstenter")) {
do (player.parent, "firstenter")
}
on ready {
if (HasScript(player.parent, "enter")) {
do (player.parent, "enter")
}
}
set (player.parent, "visited", true)
}
}
}
]]></function>
Go into code view (click on the last but one button on the tool bar), and paste all that in to the code, just above the last line (which will be
</asl>).
I think this should be added as an option to Quest; I would guess it would be quite popular.
Edit:
Here is a little library I have updated to include this feature. Add the library to your game, check that "Show room description when entering a room" is ticked on game options, and create a new attrribute on game "called showdescriptiononfirstenter", a Boolean set to true. Also allows the player to toggle this mode using TERSE and VERBOSE.