I’m going to start with your second question, because it’ll help me to explain some of the problems you’re having with the first. I’m presuming that you want a room you visit only once ever and then can’t get back to, as opposed to a one-way passage. As rooms come with a visited/unvisited property built-in that flips when the player first goes there, you can check with “if {a room} is visited” if the player has been there. Even better, you can use “Instead of {action} when {a room} is visited” to make a conditional rule that’ll only run when the player’s been to a room. Such as:
Instead of going to the Glade when the Glade is visited, say "You can't go back."
Now, your first question. For starters, you haven’t applied the colon-semicolon style fully. If you’re using it, all conditionals need to have a colon after them (not a comma) and everything needs to be indented. As an example, your code should look like this:
Instead of going to the Cave:
if the player has not talked to the peasant:
move the player to the Forest without printing a room description;
otherwise:
say "The peasant says 'Hurry back.'";
Next, Inform doesn’t really keep track of what actions have been performed (at least not in any way that’ll be useful here), so we can’t check “if the player has not talked to the peasant”. We can check properties though, as the other question shows, and it’s very easy to create a new property for the peasant, such as “greeted/ungreeted”. Adjust the “talk to peasant” action to flip that property, and “if the peasant is ungreeted” can be used to decide when to block movement.
The peasant is a person in the Glade. The peasant is either ungreeted or greeted. The peasant is ungreeted.
[Talk to it isn't part of the default actions, so I'm using this ask it about]
Instead of asking the peasant about "the cave":
Say "'Exposition! Explanation!'";
Now the peasant is greeted;
Finally, you need to remember that “Instead of {action}” replaces the normal {action}. Unless you include “continue the action” somewhere, just “instead of going to the cave” will block going to the cave completely. Alternatively, you can use “when” to make an Instead rule that only fires under certain conditions, as in the other question, but you want to add some text so:
Instead of going to the Cave:
If the peasant is ungreeted:
Say "'Hey! This is my only scene, you're not cutting me out of this adventure!'";
Otherwise:
Say "'Have fun storming the castle!'";
Continue the action;
Hope that makes things clearer.