Я бывал с обоих сторон баррикад.
Самое главное -
a)Составить хорошее техзадание. Т.е во первых четко представлять самому что нужно получить, во вторых убедится что это понимает исполнитель и понимает правильно, в третьих изложить это письменно.
b)Выбрать хорошего исполнителя имеющего опыт. Тут советовать сложно, это на уровне чутья скорее. Отзывы смотреть, общатся.
с)Контролировать ход дел, ненавязчиво, но постоянно. И оплачивать вовремя.
По поводу ваших вопросов по пунктам -
1)Не специалисту - никак. Пригласите независимого консультанта.
2)Это уже вопрос выбора. Если специалист работал с такими проектами, то он определит корректно.
Но проколы бывают у всех - поэтому контроль по срокам, изначально разбить проект части, привязать к срокам и контролировать выполнение. Вот тут самое сложное - бывают в ходе работ разные неожиданности, и тут надо смотреть, действительно ли столкнулись с трудностью которую нельзя предугадать, или идет намеренное затягивание сроков.
3)Озвучивать все свои требования в ходе обсуждения, и составления ТЗ, и требовать только то что указанно в нем.
Чаще всего проблемы бывают из за недопонимания. Заказчик представляет что это будет так, исполнитель все видит совсем по другому.