I helped make a horse you could ride one time, but I don't recall how it worked.
Recently, I needed a bed
you could lie in in which you could lie, and I went through a few ideas before I just added a
game.pov.in_bed boolean attribute to handle everything. I have to modify the commands which require touching any objects in the room around the bed this way, though -- especially if there's one object within reach from the bed but other objects which are out of reach. I'd rather modify the take script once than add verbs doing the same thing to each individual object.
At first, the bed was a transparent room inside of the Bedroom, and I had it working pretty well -- except I couldn't figure out where "You can't reach into the Bedroom." printed from sometimes. I found one place, and I fixed it so it said "You can't reach that from the bed.", but there were other commands that still printed the default. So, I decided that was too much work and went with the attribute thing.
I'm pretty sure I could have made this work well if I knew where the code was that was printing that default response.
Somebody had some code for vehicles that simply changed the player object to the vehicle that mostly worked well, but I couldn't get that to behave like I expected it to, either.
I think that was the horse, and I ended up using attributes (like with the bed) and moving the horse to each room I was headed to before I entered said room.
When using attributes like this, I modify the way it prints the room name, adding " (in the shower)" or " (riding the war unicorn)".
The way I handle it doesn't really seem worth sharing, to be honest. Too many things have to be fine-tuned to make everything print as expected.
This is another thing I wish we had a solid solution for before Quest 6 is born and steals all our attention from Quest 5. I'm pretty sure Quest 5 will still be popular for years after 6 is released. People will still be trying to do things in Quest 5, but most of us who help out on the forum will be more inclined to focus on 6 because (A) it is pure JS and we like that, and (B) it will be new and there's sure to be bugs we'll enjoy hunting down and exterminating.
There aren't many things people have commonly requested that haven't eventually been added to Quest. I don't know that vehicles and enterable containers are worthy of being included, but I do thing there should be a good library people could easily include. Plus, I don't like the idea of adding new features to Quest 5, per se; I think we should just try to fix all the known bugs for a final stable release.