Ok here goes:
Should science undergraduates be taught Fortran? Yes
Should it be the FIRST language, NO, not any more
So much of science, especially physics, is done on computers now - as both a software engineer and someone transitioning into Physics I ran into many people that had severe problems learning FORTRAN and applying it to problems. I really feel science students should have a couple of general courses in programming in C before moving on to other languages or even programming classes specific to their science. Here's the reasoning:
A) Science students need to learn programming basics away from the pressure of also learning within their science field at the same time - if your learning the science at the same time, the actual basic programming concepts get lost and muddied with the science being learned.
B) It can allow a science major to learn the concepts of programming in a general purpose language without muddying it with a lot of OS specific, library specific, attitude specific usage (aside from the compiler use)
C) There is a C compiler on almost every system you will most likely use in your lifetime as a scientist
D) C has enough structure to be "readable", but doesn't have so many constraints that it has problems being fast
E) C syntax is the basis for many other programming languages including Python and Java (both of which are heavily used in science as well)
and finally if a science major has a good understanding of programming concepts they can know what to look for when they're learning a new language (whatever it might be) - they will know that they have to learn the syntax for control structures in the new language (for, while, if, etc) as well know they'll have to find out more esoteric language specific concepts like how do I create functions and libraries? How do I use them?
ALL THAT being said, yes FORTRAN is a critical language to know with the sciences, because of the availability of libraries. HOWEVER, many of those libraries are now available in other languages and/or can be called from a different language via an abstraction (a concept that would be taught in a more general computing course)