I'm assuming you want to share a single file within a library to someone who doesn't have permission to the library.
I have done this before, and it's not a simple task.
You can either override permissions on that single item (which will get messy very fast) or I'd suggest moving/copying the file to a new library that the target user has access to. This would be the easiest.
You mentioned a contractor, does the contractor have access to the site at all? If not, this will get a whole lot more complex: you need to manage the contractor's user account to gain access (unless you want to do it anonymously) in either AD or FBA/SQL, your farm needs to be setup for external access (DMZ, firewall configs, VPN, SSL certs, etc) and then you can give them the URL to the one file. I'd suggest PDF at this point so the contractor doesn't have to log in again to open a Word doc.