Название "троян" или "троянец" пришло еще из ДОСовых времен, куда в свою очередь попало из названия известной лошади, которую по глупости притащили в город. Теоретически, "троянским конем" называют программу, которая помимо своей основной документированной функции делает еще что-то нехорошее. Классическим примером троянца можно считать неоднократно описанную в различных (полу)фантастических рассказах ситуацию, когда какая-то корпоративная программа, не обнаружив в платежной ведомости фамилию программиста, ее написавшего, начинала всячески "шалить".
В старые времена трояны писались именно как некие дополнительные функции какой-то основной программы. Например я, чтобы получить привелигированный доступ в университетскую машину, в свое время написал игрушку по мотивам "Пикника" Стругацких, которая в процессе игры имитировала сбой, выодила окно для входа в систему и сохраняла введенный пароль в файл (в те времена эта схема была еще не совсем "классической" и прекрасно сработала на моем преподавателе).
В наше время "чистых" троянов осталось очень мало (в принципе, известную историю о передаче уникальных идентификаторов пользователя на сайт Микрософт при обновлении Windows, можно считать примером классического троянца). Основным различием между вирусом и троянцем можно считать то, что вирус после своего "выхода в свет" не имеет никакой связи с создателем, а троянец предназначен как раз для последующего взаимодействия с запустившим его товарищем.
Если в старые времена троянцы ориентировались на одиноко стоящую машину (возможно, многотерминальную), то сейчас они, как правило, ориентированы на сети, в первую очередь Интернет. Не стоит путать удаленную атаку и троянцев (хотя троянцы иногда являются одним из элементов атаки) - если атака похожа на штурм крепости, то троянцы - это свои "диверсанты" в станах этой крепости.