I've recently looked a bit into using scripting languages for games. As we are at the end of a project right now, now is the time to contemplate about it. I feel that if we'd used a scripting language for the logic parts of the game, we would have saved a lot of time, even though we'd certainly have problems with interfacing the scripting code to the engine code etc.
Python is the traditional alternative for game scripting, but Lua is an interesting alternative. Python has a lot of available libraries and benefits from its maturity, while Lua is leaner and AFAIK faster.
Here's an interesting article about using multiple "green" threads in Python as a different way to design game entity animation and logic: Multithreaded Game Scripting with Stackless Python. My comment (at the bottom of that page) is about my concerns for using this programming paradigm in a multi-processor architecture. In practice it should be no big problem as the game logic would probably not use 100% of one single processor anyway.