HTML5 has a
type="time" input which in my Chrome Browser presents a spinbox field as below, but which doesn't let me enter seconds - or at least if I do and hit the up/down buttons, the seconds are removed.
However, this relies on the user having to think about the separator (a colon in this case, but periods are also valid in some locales), so if using spinboxes, I think I would prefer that hours minutes and seconds were three separate spinboxes, with the seconds defaulting to zero or not shown at all, depending on the situation. Sometimes you do see spinbox fields with 12:45:23 for example and the spinbox adjusts the h/m/s depending on where the caret is - i.e. effectively 3 spinboxes combined into one.
Then there's the consideration of a 12 or 24hr representation - and if you have a text box you might need to consider parsing/displaying 3pm (or other formats 3pm, 3PM, 3 pm, 3p.m., etc ) as opposed to 15. In this case a drop down would remove any element of doubt in the user's mind as what to enter for the hour field as compared to text boxes or editable spinboxes.
These issues can be mitigated a little by showing an example, but if you need to show an example, then my take is that the presentation is not clear enough and the example is a hack.
You could present AM/PM as another field, although looking at the Wufoo example mentioned above - they put AM or PM as an extra field at the end - away from the hour entry which is actually the most relevant connected field. In that scenario with text boxes, and with the seconds field being present as well, users might well enter 15 for the hour and then have to correct it back to 3 when they see the last am/pm field. Drop downs might alleviate that issue.
When entering numbers in a text field, users might think about whether they have to enter 6 or 06 for example, and drop downs help to prevent this too.
Obviously, if using a dropdown for the hours then dropdowns need to be used for the minutes and seconds as well, but 60 items in a dropdown is a long list...but on balance, I think it makes more sense because it removes all doubt from the user as to what they need to enter. An additional option is to separate the tens and the units for the minutes and seconds, but that is going to make the display quite cluttered.
In general I would not consider the seconds field useful but as Marjan says above - it depends entirely on context, so it needs to be optional in some way.