Sorry my post was confusing -- that's what I get for trying to do too many things at once, with no way to test code ;-)
I'll stick with what I've said: If what you're doing works, stick with it. No reason to waste time you could be playing Reach ;-D
However, if you want to see what I was trying to explain, here's some working code and explanation.
<?php $terms = get_the_terms( $post->ID, 'technology' ) ; ?>
get_the_terms returns an array of objects that look a something like the output below internally:
Array
(
[21] => stdClass Object
(
[term_id] => 21
[name] => windows xp
[slug] => windows-xp
[term_group] => 0
[term_taxonomy_id] => 21
[taxonomy] => operating_system
[description] =>
[parent] => 0
[count] => 1
[object_id] => 116
)
...
)
That's the difference between the_terms and get_the_terms "get" returns the data instead of echoing. This is a pretty common thing in WP, adding "get_" to a function returns what you were after, rather than echoing it -- but not always; I wish it were universal.
Anyway, so you'll have to do the work on this one and print out what you need:
<dt>Taxonomy Name:</dt>
<?php
$terms = get_the_terms( $post->ID, 'technology' ) ;
$term_list = array_pop($terms)->name ;
foreach( $terms as $os )
{
$term_list .= ", " . $os->name ;
}
echo $term_list ;
?>
That (tested on 3.01, finally) should do what you want and give you the flexibility to output whatever you want. But as I said, if the code you had above does what you want, there's no real reason to redo it.