We had a client that needed to have several SharePoint subsites published externally. After exposing the sites externally - everything worked fine except for checking documents in/out.
The client would get an error that said:
Object reference not set to an instance of an object
Wow...very descriptive. Thanks Microsoft.
After a little digging - we found that it was tied to Alternate Access Mappings.
Go to SharePoint Central Admin->Operations->Alternate Access Mappings.
Click Edit Public URLs.
Add the FQDN to the internet AAM and choose Ok.
Restart IIS.