Read other letters about this article
I second the idea that Python can replace BASIC as a beginner's language. It is interpreted, so like BASIC you can follow it "line by line".
In general, any programming language which can be run in an interpreter, one statement at a time, could be used for this role, those languages that don't teach the bad habits developed by BASIC are preferable.
You could use Haskell (the HUGS interpreter is available for free but it's probably a bit too weird for first time programmers), FORTH (which will inculcate even worse habits than BASIC, free interpreters are available though and it's very similar to assembly language programming), Scheme (last I checked the language of choice for educating programmers at MIT, and for which many free interpreters exist) or Squeak (which was created with pedagogy in mind and like LOGO makes graphics programming trivial).
If you are looking for BASIC specifically, then you'll have to pay, but even modern BASIC like Visual BASIC or realBASIC (available for Windows and the Mac) have removed some of the more egregious aspects of BASIC such as the dependence on line numbers and the associated tendency to produce spaghetti code riddled with GOTOs. They also have added some object oriented features, and object orientation has largely superseded subprograms and global state variables (another sin of BASIC but shared by many languages) so there is no point in not starting on an object oriented language to begin with.
There's no reason to discard current languages as too modern, anymore than you'd teach budding auto mechanics about carburetors, rather than how to diagnose a modern fuel injected system.