> I want to somehow seperate the game/strategy core engine from the > event handler front-end and the graphical backend.
> I want to later be able to switch from a command line > ascii event input, to a text file replay file, or a Tk > graphical input, or a web interface input.
CLIM was designed with this in mind.
Simply put, CLIM generalizes Lisp's textual read-eval-print loop to a read-command evaluate-command present-result loop. Commands can be read from a character-based input-stream but can also be "read" by "parsing" events. The same principle goes for presenting results: you can present a result by printing strings to a standard output-stream, but you can also present results in a graphical way.
These different interaction models can co-exist: it's not unusual for a CLIM program to have both a command-line interface and a point-and-click interface. For your game, you could start with a simple command-line interface to keep things simple. At a later stage, you could add a graphical interface.
This is only the tip of the iceberg. There are many interesting concepts in CLIM that are worth looking at. Most CL implementations can be used with CLIM: there's McClim for the open source Lisps, but Allegro CL, Lispworks and (I believe) MCL also have CLIM implementations.