I install things without shell access all the time. It goes something like this:
$ wget module-src.tar.gz
$ cat >install-module
#!/bin/sh -x
printf "Content-type: text/plain\n\n"
tar xvzf module-src.tar.gz
cd module-src
perl Makefile.PL PREFIX=/your/home
make
make test
make install
^D
$ ftp your.hosting.site
ftp> cd cgi-bin
ftp> bin
ftp> put module-src.tar.gz
ftp> put install-module
ftp> site chmod +x install-module
ftp> quit
Then visit http://your.site/cgi-bin/install-module. Of course this will all vary somewhat, but the basic formula works.
Update: As CountZero says, your provider must have the appropriate compiler available. And don't forget to remove the install-module script when you're done, for security reasons.