(Ashamed to say this) We have enterprise level legacy applications that process thousands of transactions from within VBScript. In order to make the newer .NET stuff work, we end up writing COM wrappers all the time. The interoperability rules that apply to Java and .NET amalgamation, also apply to .NET and VBScript. In fact once you get the jist of it, writing a COM wrapper is really trivial. Make your assembly COM visible, register using regsvr32.exe for COM InterOp (Or choose from the Visual Studio IDE project settings to "generate an InterOp.dll) and pass objects back and forth as System.Object. You will be OK as long as you stick to native types. In some of our projects, we need to pass streams, which is impossible - there we put the legacy ADOStream object to use... convert using ADOStream to a byte array and pass to .NET as an object - casting it directly from within C# works like a charm.
As long as the actual scripting capabilities go (if you initial question was just for general knowledge), search for Script# - Nikhil Kothari, one of the major brains behind ASP.NET is working on this new "laguage" - it allows you to use the .NET API in C, and upon compilation, spits out raw JavaScript code. I think he is planning on providing a switch to spit out VBScript code, too.