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:
 => stdClass Object
[term_id] => 21
[name] => windows xp
[slug] => windows-xp
[term_group] => 0
[term_taxonomy_id] => 21
[taxonomy] => operating_system
[parent] => 0
[count] => 1
[object_id] => 116
That's the difference between
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:
$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.