As stated in the documentation, it is important to use the correct nesting of divs.
So in your case you should write:
<%= simple_form_for(@contact) do |f| %>
<%= f.input :name %>
<%= f.input :title %>
<%= f.input :company %>
<%= f.input :email %>
<%= f.input :notes %>
<h3>Goals:</h3>
<div id="goals">
<%= f.simple_fields_for(:goals) do |goal| %>
<%= render 'goal_fields', :f => goal %>
<% end %>
<div class="links">
<%= link_to_add_association 'add goal', f, :goals %>
</div>
</div>
<%= f.submit :submit %>
<% end %>
For clarity I have removed the error-block. The goals themselves should be wrapped in a div, for the remove to work.
<div class="nested-fields>
<%= f.input :title %>
<%= f.input :due_date %>
<%= f.input :notes %>
<%= link_to_remove_association "remove goal", f %>
</div>
On a side-note: I hate to write erb, it is much more verbose, and from your gist it seems properly nested, but it actually is not. Haml is imho much clearer. Just to prove my point, the same as the above form in haml looks like:
= simple_form_for @contact do |f|
= f.input :name
= f.input :title
= f.input :company
= f.input :email
= f.input :notes
%h3 Goals
#goals
= f.simple_fields_for :goals do |goal|
= render 'goal_fields', :f => goal
.links
= link_to_add_association 'add goal', f, :goals
= f.submit
But I understand it is a matter of taste.