This places me in the boat to attempt to create my own scripting language, a procedure fraught with peril. As such, many previous attempts by others that I've been privy to have mostly been highly simple affairs where each statement is little more than a cover for a C function. While these languages have ease of use and a generally easy description (one can create the entire scripting engine in a day with lex and yacc) they're a real bitch to extend.
Another issue that comes to mind is the standard libraries for all these languages. When embedding a scripting language into a program, there's certain library features you don't want, and others you do want that aren't there. When you're faced with missing features, it's usually not too hard to just buckle down and write a module or extension library for the langauge that adds them. When you need to ensure that the file system is inaccessable, you have a problem. If the language has file IO functions built right into it, it's automatically unusable. Otherwise, if those functions are built into the language's standard library of functions, you might be able to get rid of them, but at great cost, since there might be a lot of other standard library code that builds upon the file system stuff.
(If you think that the file system example is silly, think of this. A lot of people run their computers using an unlimited or administrator account. A cracker who trojans his destructive code as a mod for your game could, with access to the file system and/or networking, bomb the system by deleting critical files, download and replace certain other files, install spyware, or in fact have the fake mod work as spyware, slurping up data from the user's files. You don't want that happening to you and your players don't want it happening to them.)