That script should work. Its only requirements really are ASP and that you can read from a text file.
That error means that your server can't find the path or file that you have entered on line 8 of engine.asp. Just double and triple check to make sure that you have the path from the root right. For example, if your site is www.yoursite.com, and your passwords.txt is located in www.yoursite.com/secure/engine.asp, you want line 8 to look like Set MyTextFile=MyFileObject.OpenTextFile(Server.MapPath("\secure") & "\passwords.txt")
Hope this helps!
As far as other options, you have plenty of options, but I think that is about as easy as it gets. I wanted a little more flexibility for my authentication pages, so I did the following:
authenticate.asp: checks cookies to see if user is logged in. If so, sets Session("authenticated") = True, if not, redirects to login page.
Then, any page that I want to be authenticated, I just add <!-- #include file="authenticate.asp" --> as the very first line, and it will authenticate when needed, and display the page if already authenticated. I could post that code if you wanted me to, just let me know.