Treat external HD like internal
I was thinking possibly have a look at fstab or chflags. Although these methods may not achieve exactly what you need but they may help to avoid unwanted or accidental interaction with the external drive.

One caveat that I have found with chflags is that you don't seem to have Finder access to the disk unless you unhide it. It does support having an iPhoto Library on the external disk. I tried this by making an test iPhoto library on a disk without chflags hidden and then hiding it with chflags nohidden. iPhoto can access the disk but it does not show up anywhere besides the apps such as Disk Utility.

To see the chflags options do:

man chflags in the Terminal.app

Here are two articles relating to fstab and chflags that you might find interesting and possibly help you achieve what you have described:

http://www.macissues.com/2014/08/27/how-to-hide-a-hard-drive-partition-on-your-mac/
http://julipedia.meroh.net/2007/01/hide-volume-in-mac-os-x.html

As far as accidentally un-mounting goes I guess if you have something open on that drive the system will automatically protect it. You might be able to use a LaunchDaemon of some sort to detect requests to unmount a drive also. On the other hand, there is no protection against physically pulling out the cable.

I hope these help.