However, quite a few people write their own system in C or BASIC or another language, either focused solely around a single game or as an expandable language. It is easier to use a pre-made system, and they will offer more portability. It will also stop you from having to remake the wheel. However, if you want to make your own system, nobody's going to stop you (well, they shouldn't, at least). It would probably be a good idea to look at the current systems to get a basic idea of what to do.
With the advent of Glk, making your own systems portable is easier. If you are writing in C, take a look at Glk. If you use it for your input and output, it will make your game a lot more portable. It is simple and powerful. However, it can't do everything. See [What is Glk?: 4.5] for details.
It is generally agreed upon that much work on a game is done before any source code is written. There are many and varied approaches to this design and planning stage, and it is difficult to recommend any one method (and this is hardly the right place). Several people have written documents on this very subject. These may be found in the IF-Archive, in the directory /if-archive/info/ . Of particular note are Graham Nelson's (graham@gnelson.demon.co.uk) "The Craft of Adventure" and Gerry Kevin Wilson's (whizzard@pobox.com) "Whizzard's Guide to Text Adventure Authorship." The filenames for these are Craft.Of.Adventure.* (where * is one of the various formats that it has been translated into) and authorship-guide.{base, sup1, sup2}. Also, there are many excellent articles on game theory and design in the 'zine "XYZZYnews" [What 'zines exist?: 6.5] .
You really ought to betatest your game before releasing it to the general public. Usually, when betatesting a game, the author sends the game out to her betatesters, who work as hard as possible to find bugs, writing flaws, and any other problems with the game and send the author reports. You can find betatesters by posting on the IF newsgroups (but see [What topics are appropriate here?: 2.2] for details on how to post betatester requests), by asking on ifMUD (see [Are there any IF-related chat spaces?: 6.4] ), or by using Lucian Smith and Liza Daly's IF Betatester page. Using their (free, of course) service, the author sends them a game which can be downloaded and tested by any of their registered betatesters (which anybody can sign up to be). More information on this service can be found at <http://plover.net/~textfire/beta.html>.
You can also find betatesters among your friends and other people who have not played IF before; though such a betatester can be useful, it is *very* important that you have at least one or two betatesters from the "IF community" (r*if, ifMUD, TextFire Beta, etc). Only somebody who knows IF well will know where bugs are most likely to crop up.