I think this foreign struct problem with LW goes all the way back to cffi- 060214. Something changed between cffi-060213 and cffi-060214 for Lispworks for Windows that messes up foreign structs. I'm having to use cffi-060213 in the lispbuilder-sdl project (only for Lispworks in win32) for this very reason. The examples work just fine in CLISP for win32, as well as SBCL for Linux using the latest and greatest CFFI.
-Luke