link_to only links to current controller?

This is really confusing to me- I have some code in a page on the site
I'm working on that works absolutely fine on one version of the code and
totally doesn't work on a newer version, in spite of the fact I can see
no difference whatsoever either in the rhtml pages, the controller or
any of the routing code. Right now I literally have no idea what the
cause of this could be.

This code lists FAQ entries (in faq_controller.rb ):

<ul>
<% @questionList.each do |question| %>
<li><%=link_to(question.question, :action=>'show_question',
:id=>question.id)%></li>
<% end %>
</ul>

On the current code it gives this output:

<li><a href="/faq/show_question/1">What is question 1?</a></li>

When I switch to the new codebase I get this:

<li><a href="/faq">What is question 1?</a></li>

Every single link I generate with link_to() is having it's path replaced
by a link to "/faq" both in the current partial and in the layout.

I added some testing code to see what url_for is returning-
<%
logger.info "Test 1:"+url_for( :controller=>'faq',
:action=>'show_question', :id=>11 )
logger.info "Test 2: "+@controller.send(:url_for,
{:action=>'show_question', :id=>1})
%>
The former gives /faq the latter gives /faq/show_question/1 but it
doesn't seem normal to have to keep calling @controller.send to get my
links working.

The other problem I have is that on my staging server and my local
machine I don't have this problem- it only arises on the live deployment
server when it is running in production mode, which means I can only
test it for seconds at the time if I don't want to start seriously
interfering with our users' experience.

Any guesses as to what might be causing this? It's driving me up the
wall.