Da się to zrobić, prawie wszystko się da

. Szkoda, że nie napisałeś w jakim języku masz skrypt (PHP, ASP itp.), ale podejrzewam, że PHP. Nie napisałeś też z jakiej bazy korzystasz (MySQL, PostgreSQL, Oracle, mSQL itp.), a może działasz na SQLite, albo na plikach. W związku z czym mój opis będzie dość ogólny.
Zakładając, że używasz bazy danych SQL. Wystarczy, że do tabeli z news'ami dorzucisz kolumnę np. 'dziedzina', która będzie przechowywała dane z jakiej dziedziny jest news. Możesz wpisywać tam konkretne wartości np. 'muzyka', 'film', albo stworzyć ralecję z tabelą, w której przetrzymywane będą te wartości (to drugie rozwiązanie jest oczywiście lepsze). Teraz część druga skryptu, gdy chcesz, żeby:
a) news'y z danej dziedziny pojawiały się po kliknięciu na link (takie rozwiązanie jest chociażby na
http://www.autoklub.pl) - wtedy wystarczy, że do linku dorzucisz jakąś zmienną np. 'dziedzina' o odpowiednich wartościach. Do zapytania pobierającego dane z bazy (SELECT) dorzucisz opcję warunkową (WHERE) z warunkiem np. dziedzina='$_GET['dziedzina']', czyli np.
[sql]select * from news where dziedzina='$_GET['dziedzina']'[/sql]
b) news'y z danej dziedziny pojawiałyby się ze względu na dane użytkownika - trochę więcej roboty: do tabeli z użytkownikami dorzucasz kolumnę 'dziedzina' (i dalej analogicznie jak z tabelą z news'ami). Następnie do przekazania danych z bazy będziesz musiał zastosować zapytanie z dwiema tabelami. Wyglądałoby to mniejwięcej tak (w przykładzie z tabeli 'news' pobierane są wartości 'tytul' i 'tresc'):
[sql]select news.tytul, news.tresc from news, users where news.dziedzina=users.dziedzina[/sql]Oczywiście niezbędny byłby warunek identyfikujący konkretnego usera.
To na tyle, opisałem to w wielkim skrócie, ale mam nadzieję, że choć trochę Ci to rozjaśniłem...
PS. Post raczej do działu "Technologie WWW - cz. 2"...