Maybe Ffidl
http://wiki.tcl.tk/1197 can help to directly load the library?
For the record: On Windows a similiar problem can be solved by setting the working directory to the path where the additional libraries are situated. Is use this to load a library that needs some system libraries, that I copied just where the tcl package is. Then the following change to the pkgIndex.tcl works fine:
if {![package vsatisfies [package provide Tcl] 8.5]} {return}
package ifneeded zmq 4.0.1 [list ::apply {dir {
source [file join $dir critcl-rt.tcl]
set path [file join $dir [::critcl::runtime::MapPlatform]]
set ext [info sharedlibextension]
set lib [file join $path "zmq$ext"]
;# to load win32 libs, we have to switch the cwd
set cwd [pwd]; cd $path
load $lib Zmq
::critcl::runtime::Fetch $dir zmq_helper.tcl
cd $cwd; unset cwd
package provide zmq 4.0.1
}} $dir]
I have only added the cd commands.
Luckily (but unfortunately for you) on linux it's not as easy to fool the dynamic linker.