Once students are accustomed to Unix, it works fine. This was a big time-sink for me initially, but there are lots of books now that make this easier that weren't around three years ago. We use a large group of undergraduate TAs. Once a few have gone through the courses they make much better TAs than the graduate students. Initially this was hard, but now that we have lots of ugrads with the requisite knowledge it works great.
Students do just as well in later courses.
I don't want this to be an ad for my book, but obviously I think it does things correctly. An updated version of this book will be available in January. However, we've used it for two years and other places are using it so that I can respond to needs in the final version. Pointers were introduced only in the second semester and very carefully and thoroughly. To avoid difficult concepts such as pointers as long as possible, the students worked with safe array and string classes, which they got for free from us.