Para definir o formato de data e moeda no ASP.NET de acordo com o país, e muito simples.
Para isso existem duas formas, uma delas é configurar o culture no Web.Config, veja no exemplo abaixo.
<configuration>
<system.web>
<globalization culture="pt-BR" uiCulture="pt-BR" />
</system.web>
</configuration>
Usando o Web.Config para atribuir o formato de data e moeda, essa configuração se aplicará a todo o site.
Agora para quem vai fazer um site multi-idioma e precisa trabalhar com varias moedas, por exemplo, pode usar a segunda forma, veja no exemplo.
using System.Globalization;
...
double moeda = 1234.56; //exemplo de moeda
DateTime data = DateTime.Now; //exemplo de data
//Definindo linguagens e regiões
//CultureInfo.CurrentCulture vai pegar do web.config
CultureInfo atual = CultureInfo.CurrentCulture;
CultureInfo brasil = new CultureInfo("pt-BR");
CultureInfo franca = new CultureInfo("fr-FR");
CultureInfo eua = new CultureInfo("en-US");
//Formato da moeda, C = Currency
Response.Write("Atual: " + moeda.ToString("C", atual) + "<br />");
Response.Write("Brasil:" + moeda.ToString("C", brasil) + "<br />");
Response.Write("Franca:" + moeda.ToString("C", franca) + "<br />");
Response.Write("EUA: " + moeda.ToString("C", eua) + "<br />");
//Formato da data
Response.Write("Atual: " + data.ToString(atual) + "<br />");
Response.Write("Brasil:" + data.ToString(brasil) + "<br />");
Response.Write("Franca:" + data.ToString(franca) + "<br />");
Response.Write("EUA: " + data.ToString(eua) + "<br />");
Veja a lista de códigos CultureInfo