It totally depends on the program. Some programs come with documentation, even though they're not prepackaged. I *try to put them in their default locations. If they tend to be run by a particular user, I'll drop them in /home/user/program to make rights a little easier to manage.
If they tend to generate a lot logs or file system writes, I'll put them in /usr/local and /var for the portions that generate lots of logs.
/opt is just as good...it's really up to you. As long as you know where it is and know the file system rights are configured so that it's not a huge security hole, you're good.