I'm not sure why yet, but "open" seems to have it's own special circle of problems. Perhaps because it's related to containers, and also because the responses are hard-coded and not customizable... What would work trivially for other verbs doesn't work for open.
One way to do it is to create a command for that room with pattern "open door". Then it will only apply to that door in that room, and you can make it do what you like. It will override any verb behavior. For example, if you drop this into your room:
<command>
<pattern>open door</pattern>
<script>
msg ("The door is too heavy to budge.")
</script>
</command>
then it will print the message if you type "open door" - but just in that room. And "open" will have its default behavior for other items.