須藤です。

拡張ライブラリを初期化しているとき(Init_XXXを呼んでいるとき)
にmodule_evalを呼ぶとトップレベルで評価されている気がします。

a.c:
  #include <ruby.h>

  void
  Init_a(void)
  {
      rb_funcall(rb_cArray, rb_intern("module_eval"),
                 1, rb_str_new2("def xxx; yyy; end"));
  }

extconf.rb:
  require 'mkmf'

  create_makefile("a")

実行例:
  % ruby19 extconf.rb
  % make
  % ruby19 -v -r a -e 'xxx'
  ruby 1.9.0 (2008-03-19 revision 0) [x86_64-linux]
  (eval):1:in `xxx': undefined local variable or method `yyy' for main:Object (NameError)
          from -e:1:in `<main>'