This may or may not have anything to do with the problem, but you need to fix it anyway:
spaces aren't valid token characters... you'll either have to camelCase it or TitleCase it or under_score it. Same goes for the label "for" attributes, as they must match the input id's (so yes, please add the id's to your inputs... that's the reason for the "for" attributes in the labels in the first place... they don't match "name").
This is prolly illegal because for other attributes, a space separates two separate entities, and elements may not have more than one id.
class="foo manchoo" is legal to say the element has two separate classes, foo and manchoo... it does not mean a single class of "foo manchoo" though.
Your other HTML syntax error MIGHT be causing your problem but I can't see why putting the stylesheet elsewhere would make a difference??
But you are referring to a div in the form, but you never closed it.
<legend>Enter your suggestion below:</legend>
<p><label for="Telephone">Telephone:</label> <input class="inputbox" type="text" name="telephone" value="'.$telephone.'"></p>
<p><label for="Your Email">Email Address:</label> <input class="inputbox" type="text" name="email" value="'.$email.'"></p>
<p><label for="Reasons Why ">Because:</label> <textarea name="reasons" cols="40" rows="6">'.$reasons.'</textarea></p>
<input name="Submit"type="Submit" value="Submit" />
<input name="Reset" type="reset" value="Reset" />
</form> [b]<-- where's the beef?[/b]
So that is certainly causing browsers to do their error-guessing thing and that could explain the difference between FF and IE. Again, no clue why where the styles are would matter.