Вам нужно создать свою Силу с новым:
Force *newforce = new Force;
newforce->Init(draw, str, newdir, lifet, lifelength);
forces.insert(forces.end(), newforce); // or: forces.push_back(force);
Что происходит с вашим кодом, так это то, что ваш объект остается в стеке, после того, как вы покидаете функцию и делаете что-то еще, он перезаписывается.
Почему вектор указателей? Вероятно, вы хотите вектор силы, а не силы *. Вам также придется удалить все элементы вашего вектора, прежде чем выбросить его!